Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/angularjs/23.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Angularjs 未注入config()的常量_Angularjs - Fatal编程技术网

Angularjs 未注入config()的常量

Angularjs 未注入config()的常量,angularjs,Angularjs,我正在尝试将我的第一个angular项目模块化。需要使我的模块视图相对于此模块。在下面的示例中,我有一个示例主模块,它需要控制器模块。我可以将视图\u路径注入控制器,但不能注入config()。据我所知,constant可以注入config()。这有什么不对 mainModule.js angular.module('mainModule', ['app.main.controllers']) .constant('VIEWS_PATH', 'js/modules/main/views');

我正在尝试将我的第一个angular项目模块化。需要使我的模块视图相对于此模块。在下面的示例中,我有一个示例主模块,它需要控制器模块。我可以将
视图\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()
中工作。。。