如果我有一些定义相同value对象的模块:
var m1 = angular.module('m1', []);
m1.value('test', 'AAA');
var m2 = angular.module('m2', []);
m2.value('test', 'BBB');
Run Code Online (Sandbox Code Playgroud)
注意m1,m2两者都具有相同的值test.
然后在主模块中,我依赖于它们两个:
var app = angular.module('angularjs-starter', ['m1','m2']);
app.controller('MainCtrl', function($scope, test) {
$scope.test = test;
});
Run Code Online (Sandbox Code Playgroud)
HTML非常简单:
<body ng-controller="MainCtrl">
[{{test}}]
</body>
Run Code Online (Sandbox Code Playgroud)
它将显示[BBB]在最后一页.我可以看到该值test的m1已经的一个推翻m2.
你可以在这里看一个现场演示:http://plnkr.co/edit/u7u8p0nYqq9CvNxWKv5G?p = preview
有没有什么办法来显示的值test都来自m1与m2在同一页面中?
pko*_*rce 12
总之 - 没有.AngularJS模块形成一个名称空间.如果在2个不同的模块上定义2个具有相同名称的值,则在运行期间只能看到一个值.这适用于任何提供者,而不仅仅是值.
这可能会在AngularJS的未来版本中得到解决,但现在最好的选择是为您的值(和其他提供者)添加模块名称前缀.
| 归档时间: |
|
| 查看次数: |
2350 次 |
| 最近记录: |