[英]AngularJS bind a value in a factory to a controller
我試圖通過工廠鏈接兩個控制器。 我想在一個控制器中為工廠上的值myFactoryVar
設置一個指針,以便當工廠中的值更改時, controllerVar
中的值controllerVar也會更改。 我已經閱讀了這篇文章,並且喜歡它的一些人AngularJS:綁定到服務屬性的正確方法,但是我似乎無法使其與我的代碼一起使用。 也許是格式? 也許我綁定到沒有意義的原始類型。 到目前為止,這就是我所知道的,是否知道如何使其按預期工作?
控制器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);
}
}
})();
綁定到引用以共享內容 。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.