我正在使用Angular,並且我的部分頁面使用ng-repeat
來顯示一些bug跟蹤器故障單。作爲網站的一部分,我也想提供搜索門票的功能。我能夠按照自己的意願讓這部分工作,如果我只是追加新票,他們就會表現出色。刪除Angular中的ng-repeat中的所有元素
但是我希望能夠,如果用戶搜索,刪除所有當前可見的票證div並將其替換爲搜索結果。
我最初的想法,因爲我的ng-repeat
設置爲item in tickets track by item.id
,只是設置$scope.tickets
等於新數據。但是,這並沒有導致Angular更新DOM。
於是,我嘗試設置$scope.tickets
等於一個空數組和然後設置它等於新的數據:
$scope.$apply(function() {
$scope.tickets = [];
$scope.tickets = data;
});
仍然沒有更新到DOM,即使console.log($scope.tickets)
顯示正確的對象。
我所知道的
$scope.$apply(function() {
array.splice(index, 1);
});
的方法來刪除單個元素,但我不知道我怎麼會申請,取消所有的元素。
我會嘗試讓一個Plunkr或JSBin很快加入到Q中。
什麼是正確的方法讓我Angular用數據創建的新元素替換所有當前元素?
有你沒有在你的NG-重複表達式中使用的過濾器的原因|它會做隱藏的工作(在門票軌道例如'項目由item.id過濾器:表達式comparator') /只顯示您正在搜索的div。 檢查AngularJS文檔https://docs.angularjs.org/api/ng/filter/filter – SeRu
我們需要查看更多的代碼上下文。沒有足夠的顯示讓我們能夠知道爲什麼視圖不會更新。始終提供[mcve] – charlietfl