以下代码包含在我的“app.js”文件中,并在我的配置中用于配置$navigationProvider.doSomething()
. Test1 和 Test3 收到警报,但我的 this.$get 方法无法正常工作(任何 Test2 警报)。在我看来,它应该在我的页面初始化时被调用,对吧?
//providers.js
angular.module('myapp.providers', []).provider('$navigation', function() {
var routes = {};
function test () {
alert(arguments);
};
alert('Test1');
this.$get = ['$rootScope', '$location',
function( $rootScope, $location) {
$rootScope.$on('$locationChangeSuccess', function () {
alert('Test2');
});
alert('Test2');
return {};
}];
this.doSomething = function () {alert('Test3')};
});
//app.js
var app = angular.module('myapp', [
'myapp.providers'
]).config(function ($locationProvider, $navigationProvider) {
$navigationProvider.doSomething();
$locationProvider.html5Mode(true);
});
编辑:
.run(['$navigation'], function ($navigationProvider) {})
我可以通过向我的“myapp.providers”模块添加一个块来使其工作。所以要详细说明我的问题,为什么没有发生自动初始化(因为我在 app.js 中配置了提供程序)?是否有任何其他解决方案可以让我的提供程序初始化?一个空的 module.run()-block 对我来说似乎有点愚蠢!