我有同樣的問題。正在尋找一些解決方案,而不是我的。可能這是唯一的一個。在「閃爍」的
根本原因是重建DOM,因爲您分配新,平原對象範圍:$scope.users = data;
。該對象不包含Angular的跟蹤數據,因此引擎會從頭開始啓動所有內容。尤其是當你在被刷新的元素使用CSS動畫效果是惱人的 - 一切都閃爍,復位等
我怎樣才能避免呢?我沒有做$scope.data = data;
,但我更新$scope.data
的每一個對象,其新版本從data
(在你的情況)。
查看下面的代碼。在我的情況下,我獲取新的服務器列表,然後我只應用更改。
$scope.servers = [];
$http.get('/panel/dashboard').then(function(res) {
// find and upgrade servers
for (var n in res.data.servers) {
var s = res.data.servers[n];
var l = get_server(s.id); // helper - get by ID from $scope.servers
if (l) {
$scope.servers.push({
id: s.id,
name: s.name,
state: s.state
});
} else {
// do update values only
l.name = s.name;
l.state = s.state;
}
}
// remember to remove old items that are in $scope.server and not in res.data
// then sort data
});
我希望它有幫助。這裏最重要的不是「如何解決」,而是「理解它是如何工作的」。
'閃爍'是什麼意思?它是在最初發生,第一次加載頁面時還是每次調用更新方法時發生? – JanS
使用[ngAnimate](https://docs.angularjs.org/api/ng/directive/ngRepeat#animations)? –
@JanS每當我打電話給更新函數 –