Angularjs 未注入config()的常量
我正在尝试将我的第一个angular项目模块化。需要使我的模块视图相对于此模块。在下面的示例中,我有一个示例主模块,它需要控制器模块。我可以将Angularjs 未注入config()的常量,angularjs,Angularjs,我正在尝试将我的第一个angular项目模块化。需要使我的模块视图相对于此模块。在下面的示例中,我有一个示例主模块,它需要控制器模块。我可以将视图\u路径注入控制器,但不能注入config()。据我所知,constant可以注入config()。这有什么不对 mainModule.js angular.module('mainModule', ['app.main.controllers']) .constant('VIEWS_PATH', 'js/modules/main/views');
视图\u路径
注入控制器,但不能注入config()
。据我所知,constant
可以注入config()
。这有什么不对
mainModule.js
angular.module('mainModule', ['app.main.controllers'])
.constant('VIEWS_PATH', 'js/modules/main/views');
controllersMain.js
angular.module('app.main.controllers', [])
.config(function($routeProvider, VIEWS_PATH) { // error
$routeProvider.when('/hello', {
templateUrl: VIEWS_PATH+'/hello.html',
controller: 'HelloController'
})
})
.controller('HelloController', function($scope, VIEWS_PATH) {
$scope.hello = 'Hello World!';
console.log('VIEWS_PATH: '+VIEWS_PATH); // ok
});
这是因为您在一个模块中定义了
VIEWS\u PATH
常量-main模块
,并试图在另一个模块中使用它-app.main.controllers
如果您希望在该模块的配置中使用该常量,则可以在app.main.controllers模块中定义该常量
angular.module('app.main.controllers', [])
.constant('VIEWS_PATH', 'js/modules/main/views')
.config(function($routeProvider, VIEWS_PATH) {
$routeProvider.when('/hello', {
templateUrl: VIEWS_PATH+'/hello.html',
controller: 'HelloController'
});
});
但是app.main.controllers
模块中的常量将在mainModule
中工作,如下所示
angular.module('mainModule', ['app.main.controllers']);
例如,假设我们定义了两个模块-MyApp
&SomeModule
var someModule = angular.module('SomeModule',['someOtherModule']);
someModule.constant('SOME_CONSTANT','SomeValue');
var myApp = angular.module('MyApp',['SomeModule']);
myApp.constant('TEST_CONSTANT','Test');
myApp.config(function(SOME_CONSTANT){
console.log("from dependent module "+SOME_CONSTANT);
});
通过上述设置,MyApp
中的SomeModule
中的someu常量可以在MyApp
中使用,但是TEST\u常量
中的MyApp
不能在SomeModule
中使用
这是一个正在运行的示例。在文档中解释得很清楚:(只需阅读整个部分,你就会得到它)。你知道为什么在我的示例中视图\u路径
在控制器()
中注入得很好吗?我想如果它在controller()
中工作,那么它应该在config()
中工作。。。