コントローラ付きの角型アプリケーションがあります。私はまた、データのリストを保持するサービスを持っています - キー値を持つオブジェクトの配列。時折、リストはランダムに変化します。このサービスはリストをコントローラに公開します。私のテンプレートでは、リストを 'リピート'しています。問題は、サービスのリストを更新すると、ビューのリストを更新する方法がわかりません。リストの変更はデータレベルでのみ行われますが、UIレベルでは行われません。 既存のリストを更新すると、uiの変更が表示されますが、リストを別のものに置き換えると、ビューは更新されません。第$timeout
でサービス上のリストを置き換えて、ビュー内で変更を参照してください
var app = angular.module('plunker', []);
app.controller('MainCtrl', function($scope, getData) {
$scope.values = getData.values
});
app.factory('getData', function($timeout){
var values = [{key:"Good", value:"Morning"}];
console.log(values)
$timeout(function(){
values.push({key:"Good", value:"Afternoon"})
console.log(values)
}, 500)
$timeout(function(){
values = [{key:"Good", value:"Night"}]
console.log(values)
}, 1000)
return{
values:values
}
});
は私がサービスへのコントローラからリストの元の参照を渡すと、私はリストを交換するとします。角度をつけて、変更を「見ている」でしょうか? – Joe