2015-01-16 7 views
6

परिभाषित नहीं किया गया है, मैं कॉर्डोवा फ़ाइल सिस्टम को काम करने में सक्षम नहीं हूं।कॉर्डोवा: स्थानीयफ़ाइल सिस्टम को

com.ionic.keyboard 1.0.3 "Keyboard" 
org.apache.cordova.console 0.2.12 "Console" 
org.apache.cordova.device 0.2.13 "Device" 
org.apache.cordova.file 1.3.2 "File" 
org.apache.cordova.file-transfer 0.4.8 "File Transfer" 

app.js में मैं एक नियंत्रक मॉड्यूल पर निर्भरता को परिभाषित:

angular.module('controllers', []) 
    .controller('GalleryCtrl', function ($scope) { 
    function success() {...} 
    function error() {...} 
    window.requestFileSystem(LocalFileSystem.PERSISTENT, 0, success, error); 
    } 
} 

:

angular.module('starter', ['ionic', 'controllers']); 

नियंत्रक कोड मूल रूप से यह वह जगह है मैं निम्नलिखित निर्भरता के साथ एक परियोजना है मुझे तब मिलता है:

LocalFileSystem is not defined 

इसके अलावा, requestFileSystem अपरिभाषित है। इस व्यवहार का कारण क्या हो सकता है?

मैं कॉर्डोवा 4.1.2 और आयनिक 1.3.1 का उपयोग कर रहा हूं।

संपादित करें: इस अनुसार html मार्कअप है:

<body ng-app="starter" ng-controller="GalleryCtrl"> 
<ion-nav-view> 
    <ion-slide-box id="slideBox"> 
     <ion-slide ng-repeat="..."> <!-- details omitted --> 
     </ion-slide> 
    </ion-slide-box> 
</ion-nav-view> 
</body> 

उत्तर

10

आप बस डिवाइस रीडी ईवेंट को निकालने की प्रतीक्षा नहीं कर रहे हैं और इस प्रकार फ़ाइल प्लगइन अभी तक लोड नहीं हुआ है। बदले

window.requestFileSystem(LocalFileSystem.PERSISTENT, 0, success, error); 

document.addEventListener("deviceready", function() { 
    window.requestFileSystem(LocalFileSystem.PERSISTENT, 0, success, error); 
}, false); 

LocalFileSystem.PERSISTENT उसके बाद भी अपरिभाषित हो सकता है (जबकि नकल आदि मेरे लिए किया गया है), लेकिन यह साथ बदला जा सकता है के रूप में यह करने के लिए बस एक स्थिर।

+0

मुझे यह जोड़ना चाहिए कि स्पष्ट रूप से फ़ाइल-स्थानांतरण प्लगइन ने 'डिवाइस से पहले' ईवेंट को ट्रिगर होने से रोका था। इस प्लगइन को हटाने और घटना श्रोता के ऊपर पंजीकरण करने के बाद हर काम ठीक है। – Bastian

+0

ध्यान दें कि इस प्रश्न के शीर्षक के कारण मेरे जैसे लोग यहां आ सकते हैं कि उन्होंने कॉर्डोवा फ़ाइल प्लगइन को जोड़ा नहीं है, समाधान: 'कॉर्डोवा प्लगइन कॉर्डोवा-प्लगइन-फाइल' जोड़ें – ehsan88

-1

requestFileSystem उपलब्ध नहीं होने के लिए कारणों में से एक है क्योंकि डिवाइस तैयार नहीं है।

कोड चल रहा एक बार खिड़की के लिए तैयार है का प्रयास करें:

$scope.$on('$ionicView.enter', function(event, data) { 
    window.requestFileSystem(LocalFileSystem.PERSISTENT, 0, success, error); 
}); 

मैं क्योंकि इसके एक प्लगइन (मेरी समझ से), लेकिन एक बार खिड़की भरी हुई है मैं उपयोग कर सकते हैं LocalFileSystem अपने संपादक में निर्धारित नहीं है अनुरोधफाइल सिस्टम और लोकलफाइल सिस्टम अपेक्षा के अनुसार काम करता है।

+0

है। इसलिए, 'window.requestFileSystem (LocalFileSystem.PERSISTENT, 0, सफलता, त्रुटि); 'कभी निष्पादित नहीं किया जाता है। कोई विचार यह क्यों हो सकता है? – Bastian

-1

आयनिक इंजेक्षन $ionicPlatform और उसके बाद के लिए उपयोग करें: अपने दृष्टिकोण त्रुटि संदेश यह सिर्फ `$ ionicView.enter` घटना फायरिंग नहीं द्वारा ऐसा नहीं करता है को दबा

$ionicPlatform.ready(function() {  
    window.requestFileSystem(LocalFileSystem.PERSISTENT, 0, success, error); 
}, false);