私はAngularJSバージョン1.4.7
を使用していて、オブジェクトの配列を含む単純なAngularJSコントローラを持っています。 ngOptions
でこれらのオブジェクトをオプションとして表示したいと思います。ngOptionsで重複しています
問題は、すべてのオブジェクトが重複していて、なぜその理由がわからないということです。この複製は選択のみに表示され、ソースオブジェクトは上手く見えます。
angular
.module('demo', [])
.controller('DemoCtrl', DemoCtrl);
function DemoCtrl() {
var vm = this;
vm.demoOptions = [
{value: 1, label: 'Demo 1'},
{value: 2, label: 'Demo 2'},
{value: 3, label: 'Demo 3'}
];
vm.selected = null;;
}
<script src="//cdnjs.cloudflare.com/ajax/libs/angular.js/1.4.7/angular.min.js"></script>
<div ng-app="demo" ng-controller="DemoCtrl as vm">
<select ng-options="item as item.label for item in vm.demoOptions track by item.value" ng-model="vm.selected">
<option value="" selected ng-if="vm.selected === null">-- select --</option>
</select>
<p ng-if="vm.selected !== null">Selected item: <code>{{vm.selected}}</code></p>
<p ng-if="vm.selected === null">No item is selected.</p>
<pre>vm.demoOptions == {{vm.demoOptions|json}}</pre>
</div>
それはバグですか?フィルタを使用せずに重複を削除するにはどうすればよいですか?
注:この問題は、AngularJSをバージョン1.3.19
から1.4.7
に更新した後に発生しました。私はchangelogを読んだが、それはtrack by
の追加についてのみ伝える - 私はそれを加えたが効果はなかった。
ああ、ありがとう。私はキーワードの重複の種類だけでGoogleの検索を行いました。 –
オプションでng-show/ng-ifを使用する必要はありません:https://jsfiddle.net/aiubian/ja217g5v/2/(1.4.7) –
@AnikIslamAbhi OPには ' - select - あなたが何かを選ぶとすぐに姿を消した。そのため、バージョン1.4.7でng-ifを使用するか、オプションを削除する必要があります –