我有一個控制器和一個指令。在指令中有來自控制器的數據數組。 當點擊指令中的按鈕時,我希望控制器更新數據。 因此,按鈕被點擊,我顯示一個繁忙的指標,當控制器完成更新數據時,我想隱藏忙指標。我的問題是有些時候數據保持不變,所以「watchCollection」函數沒有被觸發。底線,我正在尋找一種解決方案,將允許控制器告訴指令,他已完成更新。角度 - 檢測更改爲相同的值
**我想到的另一個解決方案是爲「更新」添加布爾值。該指令會將其更改爲true,並在控制器完成時將其更改爲false。但問題再次是,在某些情況下,在摘要週期開始之前,「更新」的值會變回false,檢測到已更改爲true。
該指令看起來是這樣的:
指令:
{
scope: {
arrayData: "=",
onChangeData: "&"
},
controller: function($scope){
$scope.buttonClicked : function(){
// show busy indicator
$scope.onChangeData();
}
}
link: function preLink(scope, element, attrs) {
scope.$watchCollection('arrayData', function (value) {
// hide busy indicator
});
}
}
可以請告訴我們onChangeData()是否再次重建arrayData或操作現有的數據。 – Sai
有時它是相同的引用(相同的數組對象),有時它是一個新的對象。 –
從哪裏檢索數組對象?服務器或 - ?你可以找到一種方法來包含指標在某種回調中。 – kubuntu