我是Angular的新人,所以我希望你能帮助我。
我想在未来的应用中实现这个结构:
// check for Geolocation support
if (navigator.geolocation) {
console.log('Geolocation is supported!');
}
else {
console.log('Geolocation is not supported for this Browser/OS version yet.');
}
我想使用RequireJS异步加载脚本,所以我从Angular Seed复制代码来修改它并修改它:
(if (js/navigator.geolocation) ;; Uncaught TypeError: navigator.geolocation is not a function
(println "Geolocation is supported")
(println "Geolocation is not supported"))
如果我把控制器放在应用程序文件中,一切正常,但如果我将它们分开,而不是我面临的错误说:
错误:[$ injector:nomod]模块' npLogin'不可用!您要么错误拼写了模块名称,要么忘记加载它。如果注册模块,请确保将依赖项指定为第二个参数。
我很高兴这是因为如果它首先加载控制器文件,那么 app/
----- components/
---------- home/
--------------- homeController.js
--------------- homeService.js
--------------- homeView.html
尚未初始化。
应用文件:
$script([
'<?php echo base_url('assets/v2/mobile/js/angular' . $minified . '.js'); ?>',
'<?php echo base_url('assets/v2/mobile/js/angular-route' . $minified . '.js'); ?>',
'<?php echo base_url('assets/v2/mobile/js/angular-animate' . $minified . '.js'); ?>',
'<?php echo base_url('assets/v2/mobile/js/angular-aria' . $minified . '.js'); ?>',
'<?php echo base_url('/v2/m_resources/js/login/controller'); ?>',
'<?php echo base_url('/v2/m_resources/js/app/login'); ?>',
], function () {
// when all is done, execute bootstrap angular application
angular.bootstrap(document, ['npLogin']);
});
控制器文件:
npLogin
提前致谢。
编辑:确定我找到了解决方案:
我必须创建另一个模块并将其作为依赖项注入主应用程序。
//我添加了&#34; use-strict too&#34;
APP:
angular.module('npLogin', [
'ngRoute',
])
.config(['$routeProvider', function ($routeProvider) {
$routeProvider
.when('/', {
templateUrl: '/m_resources/view/app/login.html',
controller: 'NpLoginController'
});
}]);
控制器:
angular.module('npLogin')
.controller('NpLoginController', ['$scope', function ($scope) {
console.log(1);
}]);