2015-11-28 31 views
1

我有一个小问题。 我在visual studio 2015中启动一个空的cordova应用程序,只是为了进行一些测试,我想在我的应用程序中尝试ng-cordova插件(不含离子)。我遵循ng cordova文档,并且在cordova.js和angular.js文件之后添加了ng-cordova.min.js文件。我什么也没有添加到我的index.html文件和被科尔多瓦js文件后调用的脚本我写了这个:

(function() { 
 
    "use strict"; 
 

 
    document.addEventListener('deviceready', onDeviceReady.bind(this), false); 
 

 
    function onDeviceReady() { 
 
     
 
     
 
     var app_ng=angular.module('myApp', ['ngCordova']); 
 
     console.log('device ready'); 
 

 
     $cordovaFile.getFreeDiskSpace() 
 
     .then(function (success) { 
 
      console.log(success); 
 
     }, function (error) { 
 
      console.log(error); 
 
     }); 
 
    }; 
 

 

 
})();
<html> 
 
<head> 
 
    <meta charset="utf-8" /> 
 

 
    <!-- 
 
     Customize the content security policy in the meta tag below as needed. Add 'unsafe-inline' to default-src to enable inline JavaScript. 
 
     For details, see http://go.microsoft.com/fwlink/?LinkID=617521 
 
    --> 
 
    <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 *"> 
 
    <title>ngcordovatest</title> 
 

 
    <!-- ngcordovatest references --> 
 
    <link href="css/index.css" rel="stylesheet" /> 
 
</head> 
 
<body ng-app="myApp"> 
 
    <p>Hello, your application is ready!</p> 
 
    <div id="console"> 
 

 
    </div> 
 

 
    <!-- Cordova reference, this is added to your app when it's built. --> 
 
    <script src="scripts/jquery.js"></script> 
 
    <script src="scripts/angular.min.js"></script> 
 
    <script src="scripts/ng-cordova.min.js"></script> 
 
    <script src="scripts/ng-cordova-mocks.min.js"></script> 
 
    <script src="cordova.js"></script> 
 
    <script src="scripts/platformOverrides.js"></script> 
 
    
 
    <script src="scripts/index.js"></script> 
 
</body> 
 
</html>

我总是得到以下错误:

未捕获ReferenceError:$ cordovaFile未定义

我使用一个android设备进行调试,通过USB连接。

有什么问题?我无法弄清楚。谢谢。

回答

1

由于'角'只是当前范围内的有用对象。所以,你可以试试

 function onDeviceReady() { 
    ......... 
    angular.element(document).ready(function() { 
      angular.element(document.body).injector().invoke(['$cordovaFile', function($cordovaFile){ 
      $cordovaFile.getFreeDiskSpace() 
        .then(function (success) { 
         console.log(success); 
        }, function (error) { 
         console.log(error); 
        }); 
      }]); 
     } 
}); 
+0

谢谢你的帮助,现在我有以下错误:遗漏的类型错误:无法读取属性“调用”的不确定 – volpz

+0

你可能会试图获得元素的DOM已建成之前。查看编辑我的回答 –

+0

这不适合我。任何我们需要包含的js文件? – Shri