Angularjs 未更新模块值
我在一个模块中定义了一个值,我在一个控制器中更改了该值。问题在于,该值未在其他控制器中更新Angularjs 未更新模块值,angularjs,variables,Angularjs,Variables,我在一个模块中定义了一个值,我在一个控制器中更改了该值。问题在于,该值未在其他控制器中更新 var app = angular.module('app',[]); app.value('value', 0); app.controller('AdditionController', [ 'value', function (value) { this.add = function (ammount) { console.log('Value was equal t
var app = angular.module('app',[]);
app.value('value', 0);
app.controller('AdditionController', [
'value',
function (value) {
this.add = function (ammount) {
console.log('Value was equal to ' + value);
value += ammount;
console.log('Value no equals to ' + value);
};
}
]);
app.controller('PrintingController', [
'value',
function (value) {
this.print = function () {
console.log('Printer thinks that the value equals ' + value);
};
}
]);
仅从第一个控制器而不是第二个控制器的角度更改该值。如何在第二个控制器中强制更新值?示例。这是因为
value
是number
的类型,这是一种基本类型
字符串、布尔值、数字等基本类型都是通过值传递的,这意味着变量值将得到复制和传递,而不是引用(即指针)
要解决您的问题,您应该将值的类型从number改为object
app.value('value', {val: 0});
这是一个正在工作的JSFIDLE
每当遇到值不更新的问题时,请考虑类型、对象和数组都是通过引用传递的。这是因为value
是number
的类型,这是一种基本类型
字符串、布尔值、数字等基本类型都是通过值传递的,这意味着变量值将得到复制和传递,而不是引用(即指针)
要解决您的问题,您应该将值的类型从number改为object
app.value('value', {val: 0});
这是一个正在工作的JSFIDLE
每当遇到值不更新的问题时,请考虑类型、对象和数组都是通过引用传递的。请阅读有关AngularJS中的工作原理的文档
您正在控制器中注入值,但值不会更改,因为请求可注入的ID总是为相同的ID返回相同的内容
你必须使用
app.value('value', {myValue: 0});
这将返回一个名为value的对象,您可以更改“myValue”的值
这里是工作小提琴:请阅读有关AngularJS工作原理的文档
您正在控制器中注入值,但值不会更改,因为请求可注入的ID总是为相同的ID返回相同的内容
你必须使用
app.value('value', {myValue: 0});
这将返回一个名为value的对象,您可以更改“myValue”的值
这里是工作fiddle:所以没有本地方法通过引用控制器传递数字?数字本身是基本类型,任何语言中的基本类型都只通过值传递。所以没有本地方法通过引用控制器传递数字?数字本身是基本类型,任何语言中的基元类型都将仅通过值传递。