1
私の配列の値を追加して削除するためのselectを作成したいと思います。しかし値は一意でなければなりません。配列に表示されていない場合、Angularjsは表示値を選択します
私が選択
<div ng-app="myApp">
<div ng-controller="myController">
<p>Select something</p>
<select ng-model="selectedBucket"
ng-options="row as row.display for row in bucketEnum | filter:bootstrapValues">
</select>
<button ng-click="add(selectedBucket.value)">
add
</button>
<br>
{{initialSet}}
<br>
{{bucketEnum}}
</div>
</div>
とコントローラとフィルタの値を表示または非表示にする方法私ができるかわからないので、これは正しく私のコードが、dosen't作品です:
var app = angular.module('myApp', []);
app.controller('myController', function ($scope, $filter) {
$scope.initialSet = [1, 2, 4, 7];
$scope.bucketEnum = [
{ display: '0', value: 0, bool:true },
{ display: '1', value: 1, bool:true},
{ display: '2', value: 2, bool:true },
{ display: '3', value: 3, bool:true },
{ display: '4', value: 4, bool:true },
{ display: '5', value: 5, bool:true },
{ display: '6', value: 6, bool:true },
{ display: '7', value: 7, bool:true }
];
$scope.add = function(value){
$scope.initialSet.push(value);
$scope.selectedBucket = $filter('bootstrapValues')($scope.initialSet, $scope.bucketEnum);
}
});
app.filter('bootstrapValues', function(){
return function(initial, baseBucket){
var result = [];
for(var i = 0; i < initial.length; i++){
var flag = false;
for(var j=1; j<baseBucket.length; j++){ //from 1 or 0.. you call
if(initial[i] === baseBucket[j].value){
flag = true;
baseBucket[j].bool = false;
break; // if there are repeated elements
}
}
}
return result;
};
});
は、あなたが選択表示を無効にしたいんを参照してください。すでに 'initialSet'配列に含まれていた場合は値を返しますか、それともselectオプションでは必要ありませんか? – anoop
値が配列内にある場合、selectの値を非表示にしたい –
残念ながら、要素を隠すように設定できる属性はないと思います。おそらくあなたのための解決策は、表示値の配列を作成し、それを表示したいかもしれない2番目の配列のデータから読み込むことでしょう。 –