我想通过(我认为)两个孩子控制器之间的数据。 试图与工厂做到这一点。如何在工厂之间传递控制器之间的值?
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