angleJSコントローラにsocketを使用してデータを取得しています。AngularJs可変スコープoutisde関数
私は下のコードで更新されたlist1変数を使用したいと思いますが、値が ''として来るようにできません。 これは、スクリプトを更新する前、つまり応答を受け取る前にスクリプトでアクセスしようとしているためです。
私の下のコードで変数list1の更新された値を使用できる方法はありますか。
編集1
答えの一つに@Manishシンによって示唆されるように、私は$ rootScope.watch.Itは、上記のコードpeiceの新しい値を反映するが、コードについては、以下を与えられていない試してみました。
$rootScope.peers = [];
industrysearch.searchindustry(indussymbol).then(function(results) {
industrysearch.searchpeers($scope.industrystock[0]._source.industry).then(function(results1) {
for (var number_stocks = 0; number_stocks < results1.length; number_stocks++) {
$rootScope.peers.push(results1[number_stocks]);
}
});
});
$rootScope.$watch('peers', function(newVal1, oldVal1) {
console.log(newVal1); //prints []
});
1つは通常の変数であり、1つは配列として使用されます。他の違いはありません。
編集2
$ watchCollectionは、私は、コードが機能しているmissed.Below配列/コレクションの使用です。
$rootScope.$watchCollection('peers', function(newVal1, oldVal1) {
console.log(newVal1);
});
ありがとうございました!
更新スコープ変数を、あなたは$スコープを使用する必要がありますのための$適用されます()。変更がイベント外で更新される – gyc
$ scope.applyを追加しようとしましたが、動作しませんでした。 socket.on( '引用'、関数(データ){ $範囲$を適用する(関数(){ \t $ rootScope.list1 = angular.fromJson(data.substring(3)); }); //ここからこの変数を使用する関数を呼び出すことはできません }); – Jitesh