0
我在我的angularjs
項目中使用acute.select
。我有一個array
:angularjs - 更新`ac-change`後的`acute.select`列表
$scope.users = [];
$scope.acuteusers =[{UserName:"john"},{UserName:"joe"},{UserName:"mary"}];
$scope.stateSelected = function(state){
console.log(state);
for (var i = 0; i < $scope.acuteusers.length; i++) {
if (state.UserName == $scope.acuteusers[i].UserName) {
$scope.acuteusers.splice(i,1);
};
};
console.log($scope.acuteusers);
}
和html
:
<select class="ac-select stateList" ac-model="users" ac-options="s.UserName for s in acuteusers"
ac-settings="{ comboMode: true, loadOnOpen: true, minWidth: '470px' }" ac-change="stateSelected(value)" >
</select>
我想從acute.select
下拉列表一切選擇的元素取出元素。但不知怎的,它將保持爲初始狀態(沒有元素被刪除),即使console.log
顯示它已被取出。我該如何解決這個問題?
這可能是你的'ac-'問題。在拼接過程中添加一個$超時有時觸發'$ digest'需要一些時間。 –
我認爲拼接應該像$ scope.acuteusers.splice(i,1); – Nir
不要在迭代它時修改數組,它是一種反模式。如果在迭代時必須從數組中移除元素,請向後執行(使用'array.len'開始計數並遞減)。 –