=====Cordova文件是undefined=====
嗨。
我正试着和科多瓦一起学习移动开发。我想创建一个类似instagram的应用程序,在其中存储内存。应用程序使用两页:
我创建文件和在内部编写新内存的代码似乎有效(我无法打开所创建的文件,因此无法确定,但我没有任何错误.)。现在我正在尝试使用ngCordova文件插件来访问该文件并显示其内容。
下面是我的代码(现在):注意:为了更好的理解,我的代码已经被翻译成英文了。我希望我没有犯任何翻译错误,与手头的话题无关。
index.html
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8"/>
<meta charset="utf-8" />
<meta http-equiv="Content-Security-Policy" content="default-src 'self' data: gap: https://ssl.gstatic.com 'unsafe-eval'; style-src 'self' 'unsafe-inline'; media-src *">
<!-- Donwloaded files -->
<script src="scripts/jquery-2.1.4.js"></script>
<script src="scripts/angular.js"></script>
<script src="scripts/angular-route.js"></script>
<script src="scripts/bootstrap.js"></script>
<script src="scripts/ng-cordova.js"></script>
<!--Own libraries-->
<script src="lib/index.js"></script>
<script src="lib/app.js"></script>
<script src="lib/controleurs/addMemoryController.js"></script>
<script src="lib/controleurs/memoriesController.js"></script>
<!-- Cordova reference -->
<script src="cordova.js"></script>
<script src="scripts/platformOverrides.js"></script>
</head>index.js (首次加载文件,自动生成)
(function () {
"use strict";
document.addEventListener( 'deviceready', onDeviceReady.bind( this ), false );
function onDeviceReady()
document.addEventListener( 'pause', onPause.bind( this ), false );
document.addEventListener( 'resume', onResume.bind( this ), false );
//angular.bootstrap(document, ['myMemories']); //aborted try. Give me the error : Uncaught Error: [ng:btstrpd] App Already Bootstrapped with this Element 'document'
};
function onPause() {
};
function onResume() {
};
} )();app.js (声明应用程序)
var app = angular.module('myMemories', ['ngRoute','ngCordova']);
app.config(function ($routeProvider) {
$routeProvider
.when("/", {
templateUrl: "views/memories.html",
controller: "memoriesController"
})
.when("/ajouteSouvenir", {
templateUrl: "views/addMemory.html",
controller: "addMemoryController"
})
.otherwise({ redirectTo: "/" });
});memoriesController.js
app.controller("souvenirsControleur", function ($scope,$rootScope,$cordovaFile) {
if (!$rootScope.memoriesList) {
$cordovaFile.readAsText(cordova.file.dataDirectory, "stored_memories.json").then(
function (pResult) {
if (typeof (pResult) == "string") {
$rootScope.memoriesList= JSON.parse(pResult);
} else {
$rootScope.memoriesList= pResult;
}
},
function (pError) { console.log("error : readAsText"); console.log(pError);}
);
}
});我得到以下错误: TypeError:无法读取未定义的属性'dataDirectory‘。我想我使用了正确的东西,我在这里找到了:http://ngcordova.com/docs/plugins/file/
以下是我试过但没有成功的地方:
我很确定我的错误是显而易见的,但我无法理解.
如果你需要的话我可以给你更多的代码。
发布于 2016-01-10 09:05:20
可能是在设备准备好之前,您正在尝试使用cordova.file。作为测试,尝试将代码移动到事件处理程序中。
document.addEventListener('deviceready', function () {
// Put code here
});https://stackoverflow.com/questions/34703525
复制相似问题