gpt4 book ai didi

javascript - 如何更新 Controller angularjs中的.value?

转载 作者:搜寻专家 更新时间:2023-11-01 04:35:44 25 4
gpt4 key购买 nike

我试图将值从一个模块传递到 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)
})

不工作:-

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)
})

在第二个示例中,我尝试更新其更新正常的值。但是当我访问其他模块的值时,它只显示未更新的旧值,任何人都可以帮助我。我哪里弄错了...

最佳答案

JavaScript 字符串是不可变的,因此您无法更新注入(inject)的值(因为它是一个字符串)——您只是在更改注入(inject)变量的内容。您可以采用另一种方法将字符串包含在对象中,现在您可以更新对象中的字符串:

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);
});

关于javascript - 如何更新 Controller angularjs中的.value?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36448328/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com