私は2つの子コントローラの間でデータを渡そうとしています。 工場でこれをやろうとしています。ファクトリを持つコントローラ間でどのように値が渡されますか?
testFactory.js異なるJSファイルで
app= angular.module('testApp');
app.factory('values', [function() {
var testValues= {
valueA: ''
};
return {
setValueA: function(a) {
testValues.valueA= a;
},
getValueA: function() {
return testValues.valueA;
}
};
}]);
ので、異なるコントローラ。 controller1.js(この1つは値を設定)
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'が初期化されるまでに' firstCtrl'が完全に初期化されるという保証はないので、 'firstCtrl'で設定された値は設定されないかもしれません。これらの値を同期させる最も簡単な方法は、 'values.getValueA();'に '$ scope。$ watch'を使うことです。 – laughingpine
まだfirstCtrlとsecondCtrlに(工場から返された)サービスを注入しようとしましたか? – Andrea