ng-selected
<option>
タグではなく、タグで使用する必要があります<select>
。そのドキュメントと例を詳しく見てください。
選択したオプションのselect
ディレクティブの決定はに基づいているためngModel
です。したがって、 を削除するng-selected="c.CollegeName == collegeSelection.CollegeName"
と、コードが機能するはずです。
ディレクティブで「選択された」機能を示すために、非常に単純なプランクを作成しました。select
詳細:
AngularJS はngModel
ディレクティブを使用して、モデルと UI 要素間の「双方向データ バインディング」を有効にします。
「select」の場合は、collegeSelection
指定した機種<select ng-model="collegeSelection" ...>
が選択項目となります。つまり、ユーザーがページのドロップダウンからアイテムを選択すると、collegeSelection
そのアイテムに設定されます。そして、JavaScript コードで項目を設定collegeSelection
すると、AngularJS は対応する項目<option>
が選択されていることを確認します。
コントローラーに次のコードがあるとします。
$scope.colleges = [
{id: 0, name: 'a'},
{id: 1, name: 'b'},
{id: 2, name: 'c'}
];
$scope.collegeSelection = $scope.colleges[0];
HTML は次のようになります。
<select ng-model="collegeSelection" ng-options="c as c.name for c in colleges"></select>
それでおしまい!コードを実行すると、colleges 配列の最初の大学が選択されます。
ユーザーが UI でアイテムを選択したか、JavaScript でアイテムを選択したかに関係なく、選択されたオプションであるcollegeSelection
ことを覚えておいてください。
これが、双方向データバインディングのしくみです。