Javascript AngularJS将工厂中的值绑定到控制器
我试图通过工厂连接两个控制器。我想在一个控制器中设置一个指针,指向工厂中的值Javascript AngularJS将工厂中的值绑定到控制器,javascript,angularjs,Javascript,Angularjs,我试图通过工厂连接两个控制器。我想在一个控制器中设置一个指针,指向工厂中的值myFactoryVar,这样当工厂中的值更改时,控制器中的值controllerVar也会更改。 我读过这篇文章,有好几篇喜欢它 但我似乎无法使它与我的代码一起工作。也许是格式?也许我绑定到了一个原语类型而没有任何意义。这是我到目前为止得到的,你知道如何使它按预期工作吗 控制器1: ;(function() { 'use strict'; angular .module('myapp'
myFactoryVar
,这样当工厂中的值更改时,控制器中的值controllerVar
也会更改。
我读过这篇文章,有好几篇喜欢它
但我似乎无法使它与我的代码一起工作。也许是格式?也许我绑定到了一个原语类型而没有任何意义。这是我到目前为止得到的,你知道如何使它按预期工作吗
控制器1:
;(function() {
'use strict';
angular
.module('myapp')
.controller('MyCtrl1', MyCtrl1);
function MyCtrl1(myTracker) {
var vm = this;
angular.extend(vm, {
controllerVar: myTracker.myFactoryVar,
myTrackerVarIncrement: myTrackerVarIncrement
});
function myTrackerVarIncrement() {
myTracker.myFactoryVarIncrement();
/* should log the same value as myFactoryVar but doesn't */
console.log(vm.controllerVar);
}
}
})();
控制器2:
;(function() {
'use strict';
angular
.module('myapp')
.controller('MyCtrl2', MyCtrl2);
function MyCtrl2(myTracker) {
var vm = this;
angular.extend(vm, {
myTrackerVarIncrement: myTrackerVarIncrement
});
function myTrackerVarIncrement() {
/* I want to be able to increment the value in the factory, */
/* and by means of that, the value in the other controller too */
myTracker.myFactoryVarIncrement();
}
}
})();
工厂:
;(function() {
'use strict';
angular
.module('myapp')
.factory('myTracker', myTracker);
function myTracker() {
var factory = {
myFactoryVar: 1,
myFactoryVarIncrement: myFactoryVarIncrement
};
return factory;
function myFactoryVarIncrement() {
factory.myFactoryVar += 1;
}
}
})();
也许我绑定到了一个原语类型而没有任何意义
myFactoryVar
是对象的属性。共享作为属性的对象的引用
;(function() {
'use strict';
angular
.module('myapp')
.controller('MyCtrl1', MyCtrl1);
function MyCtrl1(myTracker) {
var vm = this;
angular.extend(vm, {
//controllerVar: myTracker.myFactoryVar,
controllerRef: myTracker,
myTrackerVarIncrement: myTrackerVarIncrement
});
function myTrackerVarIncrement() {
myTracker.myFactoryVarIncrement();
/* should log the same value as myFactoryVar but doesn't */
//console.log(vm.controllerVar);
console.log(vm.controllerRef.myFactoryVar);
}
}
})();
绑定到引用以共享内容。错误是什么?就是这样。现在一切正常。非常感谢。