Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/376.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
Javascript Can';t向另一个模块配置注入常量_Javascript_Angularjs - Fatal编程技术网

Javascript Can';t向另一个模块配置注入常量

Javascript Can';t向另一个模块配置注入常量,javascript,angularjs,Javascript,Angularjs,问题是我无法将常量从一个模块插入到另一个模块的模块配置中 主应用程序: 'use strict'; angular.module('identicaApp', [ 'ngRoute', 'identicaApp.common', 'identicaApp.mainPage', 'identicaApp.aboutPage', 'identicaApp.registerPlayer' ]).config(['$locationProvider', '$ro

问题是我无法将常量从一个模块插入到另一个模块的模块配置中

主应用程序:

'use strict';

angular.module('identicaApp', [
    'ngRoute',
    'identicaApp.common',
    'identicaApp.mainPage',
    'identicaApp.aboutPage',
    'identicaApp.registerPlayer'
]).config(['$locationProvider', '$routeProvider', function ($locationProvider, $routeProvider) {
    $locationProvider.hashPrefix('!');

    $routeProvider.otherwise({redirectTo: '/main'});
}]);
common.js:

angular.module('identicaApp.common', [])
  .constant('ROOT_PATH', '/static/angular/identica/');
问题模块:

'use strict';

angular.module('identicaApp.mainPage', [
    'ngRoute',
    'identicaApp.common'
])

.config(['$routeProvider', function($routeProvider) {
  $routeProvider.when('/main', {
    templateUrl: common.ROOT_PATH + 'main_page/main_page.html',
    controller: 'MainPageCtrl'
  });
}])

.controller('MainPageCtrl', [function() {

}]);

common.ROOT\u路径
在加载程序中不可见…

我认为您没有将实际常量注入到
config
调用中(例如,与向控制器注入服务的方式相同),然后您必须通过其名称引用它:

'use strict';

angular.module('identicaApp.mainPage', [
    'ngRoute',
    'identicaApp.common'
])

// Here you must inject your 'ROOT_PATH' constant
.config(['$routeProvider', 'ROOT_PATH', function($routeProvider, ROOT_PATH) {
  $routeProvider.when('/main', {
    templateUrl: ROOT_PATH + 'main_page/main_page.html', // You must reference it by its name (ROOT_PATH)
    controller: 'MainPageCtrl'
  });
}])

.controller('MainPageCtrl', [function() {

}]);

您需要包括常数并按如下方式使用:

.config(['$routeProvider', function($routeProvider, ROOT_PATH) {
  $routeProvider.when('/main', {
    templateUrl: ROOT_PATH + 'main_page/main_page.html',
    controller: 'MainPageCtrl'
  });
}])
如果您想在
根路径下有多个常量“变量”,可以这样做

angular.module('identicaApp.common')
  .constant('ROOT_PATH', {
    'URL': '/static/angular/identica/',
    'NAME': 'Test',
    'ANOTHER_THING': 'Something'
});
然后您可以这样使用它:

.config(['$routeProvider', function($routeProvider, ROOT_PATH) {
  $routeProvider.when('/main', {
    templateUrl: ROOT_PATH.URL + 'main_page/main_page.html',
    controller: 'MainPageCtrl'
  });
}])