Sur*_*h B 5 javascript angularjs angularjs-directive angularjs-scope
我试图将值从一个模块传递到angularjs中的另一个模块.使用.value工作正常.
工作: -
var app = angular.module('app', []);
app.value('movieTitle', 'The Matrix');
var app1 =angular.module('app1', ['app']);
app1.controller('MyController', function (movieTitle) {
//Here I am getting value. which is working fine.
console.log(movieTitle)
})
Run Code Online (Sandbox Code Playgroud)
不工作: -
var app = angular.module('app', []);
app.value('movieTitle', 'The Matrix');
app.controller('MyController', function (movieTitle) {
//Here I override the value.
movieTitle = "The Matrix Reloaded";
})
var app1 =angular.module('app1', ['app']);
app1.controller('MyController', function (movieTitle) {
//Here I am getting old value not update value.
console.log(movieTitle)
})
Run Code Online (Sandbox Code Playgroud)
在第二个示例中,我尝试更新其更新的值.但是当Am访问其他模块的值时,它只显示旧值未更新,任何人都可以帮助我.哪里我错了...
JavaScript 字符串是不可变的,因此您无法更新注入的值(因为它是一个字符串)——您只是更改注入变量的内容。您可以采用另一种方法将字符串包含在对象中,现在您可以更新对象中的字符串:
var movie = { title: 'The Matrix' };
angular.module('app', [])
.value('movie', movie)
.controller('MyController', function (movie) {
//Here I override the value.
movie.title = "The Matrix Reloaded";
});
angular.module('app1', ['app'])
.controller('MyController', function (movie) {
console.log(movie.title);
});
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
2724 次 |
| 最近记录: |