我想通過(我認爲)兩個孩子控制器之間的數據。 試圖與工廠做到這一點。如何在工廠之間傳遞控制器之間的值?
testFactory.js
app= angular.module('testApp');
app.factory('values', [function() {
var testValues= {
valueA: ''
};
return {
setValueA: function(a) {
testValues.valueA= a;
},
getValueA: function() {
return testValues.valueA;
}
};
}]);
在不同JS文件,以便不同的控制器。 controller1.js(這一項設置的值)
angular.module('testApp')
.controller('firstCtrl', ['$scope''values',
function ($scope, values) {
values.setValueA("MyTestValue");
}]);
controller2.js此讀取值。
angular.module('testApp')
.controller('secondCtrl', [ '$scope', 'values',
function ($scope, values) {
$scope.valueA = values.getValueA();
}]);
我在HTML端包含js。兩個控制器都看到工廠(我可以在調試過程中看到這些功能)。我的問題是第二個沒有任何價值。就像它的一種全新的方法。不知道我錯過了什麼?
無法保證'firstCtrl'在初始化'secondCtrl'時完全初始化,所以'firstCtrl'中設置的值可能不會被設置。最簡單的(儘管可能不是最好的方式)讓這些值同步是在'values.getValueA();' – laughingpine
上使用'$ scope。$ watch'然而試圖在firstCtrl和secondCtrl中注入服務(從工廠返回)? – Andrea