AngularJS 1.1.5でng-repeatを使用して、事前に入力されたオプションで選択ボックスを開始しようとしています。その代わり、選択は常に何も選択されていない状態から始まります。空のオプションもありますが、これは必要ありません。何も選択されていないという副作用があると思います。
ng-repeatの代わりにng-optionsを使用してこれを機能させることができますが、この場合はng-repeatを使用したいと思います。絞り込んだ例では表示していませんが、各オプションのtitle属性も設定したいので、ng-optionsを使用してこれを行う方法はありません。
これは一般的なAngularJのスコープ/プロトタイプ継承の問題に関連しているとは思いません。少なくとも私はバタランで調べたときに何も明白なものを見ていません。さらに、UIの選択でオプションを選択すると、モデルは正しく更新されます。
HTMLは次のとおりです。
<body ng-app ng-controller="AppCtrl">
<div>
Operator is: {{filterCondition.operator}}
</div>
<select ng-model="filterCondition.operator">
<option
ng-repeat="operator in operators"
value="{{operator.value}}"
>
{{operator.displayName}}
</option>
</select>
</body>
そしてJavaScript:
function AppCtrl($scope) {
$scope.filterCondition={
operator: 'eq'
}
$scope.operators = [
{value: 'eq', displayName: 'equals'},
{value: 'neq', displayName: 'not equal'}
]
}
JS Fiddle for this:http : //jsfiddle.net/coverbeck/FxM3B/2/