私は選択コントロールを持っています。そのオプションはスコープのオブジェクト配列から動的に生成されます。 app initでは、スコープのバインドされた変数を変更して、特定のオプションを選択したいと考えています。AngularJS:バウンドスコープ変数の変更時に選択されたオプションを変更しない
selectのng-optionが完全なオブジェクトを返すときには機能しません。しかし、selectのng-optionが文字列を返すときに動作します。
角張っているのですか、何か問題がありますか?
HTML:
<div ng-controller="selectCtrl" ng-app>
Doesn't work when select's ngModel value is object:<br />
<select ng-model="valueObject" ng-options="o.label for o in options"></select><br />
<pre>{{valueObject | json}}</pre>
Works when select's ngModel value is string:<br />
<select ng-model="valueString" ng-options="o.value as o.label for o in options"></select>
<pre>{{valueString | json}}</pre>
JS:
function selectCtrl($scope) {
$scope.options = [
{label: 'a', value: '1', someId: 333},
{label: 'b', value: '2', someId: 555}
];
$scope.valueObject = {label: 'a', value: '1', someId: 333};
$scope.valueString = '1';
};
JSフィドル:http://jsfiddle.net/apuchkov/FvsKW/6/
あなたは、angle.jsのソースコードをチェックして、 "==="を使用してオプションを選択する必要があるかどうかをチェックします。代わりにangular.equalsを使用すると思います。 –