我尝试将Angle.js与PhoneGap一起使用,它在chrome浏览器上可以正常工作,但是 在ng-view标签上不起作用,并且在模拟器上运行angular模块时不会调用它。你有什么主意吗?
我的代码是这样的。
<body> <div class="app" > <h1>Welcome!</h1> <div id="deviceready"> <div ng-view></div> </div> </div> <script type="text/javascript" src="cordova-2.0.0.js"></script> <script type="text/javascript" src="js/index.js"></script> <script type="text/javascript"> app.initialize(); </script> <script src="http:////cdnjs.cloudflare.com/ajax/libs/zepto/1.0rc1/zepto.min.js"></script> <script src="http://ajax.googleapis.com/ajax/libs/angularjs/1.0.2/angular.min.js"> </script> <script type="text/javascript" src="js/router.js"></script> </body>
var app = { initialize: function() { this.bind(); }, bind: function() { document.addEventListener('deviceready', this.deviceready, false); }, deviceready: function() { // note that this is an event handler so the scope is that of the event // so we need to call app.report(), and not this.report() app.report('deviceready'); }, report: function(id) { console.log("report:" + id); // hide the .pending <p> and show the .complete <p> document.querySelector('#' + id + ' .pending').className += ' hide'; var completeElem = document.querySelector('#' + id + ' .complete'); completeElem.className = completeElem.className.split('hide').join(''); } };
angular.module("app",[]). config(["$routeProvider",function($routeProvider){ $routeProvider.when("/",{templateUrl:"templates/home.html"}); }]);
尝试使用bootstrap api方法在deviceReady上手动启动应用程序。就像是:
function onDeviceReady() { ... angular.bootstrap(document, ['ngView']); ... } document.addEventListener("deviceready", onDeviceReady, true);
http://docs.angularjs.org/api/angular.bootstrap