使用在子模块内部的父模块上定义的常量's配置
use constant defined on parent module inside child module's configuration
我有main
角度模块,它知道服务器url,我这样设置它:
angular.module('main', ["editor"]).constant("main.serverUrl", "http://serverurlhere.com")
我还有editor
模块,main
模块依赖于它。Editor
模块知道与之对话的服务器上的控制器名称(editor
),但不知道服务器URL,所以我想使用editor
模块中的serverUrl
常量来定义editor.serverUrl
常量,类似于以下内容:
angular.module('editor').constant("editor.serverUrl", main.serverUrl + "/editor")
我该怎么做?
更新:
var m = angular.module("main", ["editor", "mainModuleProviders"]);
var mProviders = angular.module("mainModuleProviders", []);
mProviders.constant("serverUrl", "http://someserverurl.com");
var e = angular.module("editor", ["mainModuleProviders"]);
e.config(["serverUrl", "$provide", function(serverUrl, $provide){
$provide.value("editor.serverUrl", serverUrl + "/editor/")
}]);
您可以尝试类似的
var e = angular.module("editor", [])
.constant("editor.url", "/editor");
var m = angular.module("main", ["editor"]);
m.constant("serverUrl", "http://someserverurl.com");
m.config(["editor.url","serverUrl", "$provide", function(eu,se,$provide){
$provide.constant("editor.serverUrl",se+eu);
}]);
var e = angular.module("editor", [])
.constant("editor.url", "/editor");
var m = angular.module("main", ["editor"]);
m.constant("serverUrl", "http://someserverurl.com");
m.config(["editor.url", "serverUrl", "$provide",
function(eu, se, $provide) {
$provide.constant("editor.serverUrl", se + eu);
}
]);
e.controller('ctrl', ["$scope", "serverUrl", "editor.url", "editor.serverUrl",
function($scope, su, eu, seu) {
$scope.serverUrl = su;
$scope.editorUrl = eu;
$scope.editorServerUrl = seu;
}
])
<script src="https://ajax.googleapis.com/ajax/libs/angularjs/1.2.23/angular.min.js"></script>
<div ng-app="main" ng-controller="ctrl">
<div>serverUrl = {{serverUrl}}</div>
<div>editorUrl = {{editorUrl}}</div>
<div>editorServerUrl = {{editorServerUrl}}</div>
</div>
更新
在AngularJS中使用了依赖项注入,因此当您在模块中添加依赖项时,必须在该模块运行之前加载它
在您的第一个变体中:您尝试使用依赖于编辑器模块中编辑器模块的主模块
为了解决问题,您可以使用第二个变体mainModuleProviders中的第三个模块,或者在主模块内部配置所有模块。
注意:内部角度没有模块,所以无论在哪里声明这个常数
相关文章:
- Javascript,访问一个主要对象模块模式中的每个对象
- 节点Js:How to catch a“;没有这样的文件或目录“;读取线模块出错
- 如何从模块链中调用函数.导出到节点中
- 尽管链接成功并已成功下载,但未找到NPM模块
- 节点是否需要模块传递带有方括号的arg?这是个错误吗
- 从模块内部访问Express装载路径
- 使用在子模块内部的父模块上定义的常量's配置
- 使用Angular JS将常量注入其他模块配置
- 如何在脚本标记的源属性中使用 AngularJS 模块常量
- AngularJS module.constant() :如何仅在模块内定义常量
- 如何直接访问模块's在AngularJS上的HTML中的常量
- Angularjs模块范围常量的最佳实践
- 直接从Angular模块访问常量
- 添加要跨节点模块使用的常量
- Angular 2,打字稿模块没有导出的常量“FORM_DIRECTIVES”
- 可以't将常量注入另一个模块配置
- 模块Javascript中的常量或最终变量
- 在AngularJS中,哪些模块可以覆盖常量
- node.js和浏览器代码重用:将常量导入模块
- 覆盖angularJS中模块值/常量的最佳方式