4
以下代碼包含在我的'app.js'文件中,並在我的配置文件中用於配置$navigationProvider.doSomething()
。 Test1和Test3被警告,但是我不能得到我的。$ 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工作。提供者的模塊。爲了更詳細地說明我的問題,爲什麼沒有自動初始化發生(因爲我在app.js中配置提供程序)?有沒有其他解決方案讓我的提供者初始化?一個空的module.run() - 塊對我來說似乎有點愚蠢!