Angular.jsでselectに変更があった時に、何らかの処理を行ってみます。
ng-repeatで設定
Angular.jsでselect変更時に処理を行う場合、ng-changeを使います。
ng-repeatで設定したselectで実装してみます。
HTML
<div ng-controller="select_Ctrl">
<select name="select" ng-model="select" ng-change="selectChange()">
<option value="">-----</option>
<option value="{{option.value}}" ng-repeat="option in options">{{option.name}}</option>
</select>
</div>
JavaScript
angular.module('app', []).controller('select_Ctrl', function($scope) {
$scope.select = null;
// selectに設定するoption
$scope.options = [
{
'name': '高海 千歌',
'value': 0
}, {
'name': '桜内 梨子',
'value': 1
}, {
'name': '松浦 果南',
'value': 2
}, {
'name': '黒澤 ダイヤ',
'value': 3
}, {
'name': '渡辺 曜',
'value': 4
}, {
'name': '津島 善子',
'value': 5
}, {
'name': '国木田 花丸',
'value': 6
}, {
'name': '小原 鞠莉',
'value': 7
}, {
'name': '黒澤 ルビィ',
'value': 8
}
]
$scope.selectChange = function() {
console.log($scope.select);
}
});
select変更時にconsoleを出力することができました。
ng-repeatでのデモページ
ng-optionsで設定
ng-optionsで同様に実装してみます。
HTML
<div ng-controller="select_Ctrl"> <select name="select" ng-model="select" ng-change="selectChange()" ng-options="option.value as option.name for option in options"> <option value="">-----</option> </select> </div>
JavaScriptは先ほどと同じです。
ng-repeatのときと同じく、select変更時にconsoleを出力することができました。
ng-optionsのデモページ
ng-repeatとng-optionsでの違いですが、HTMLに直接記述している1番目のoptionを選択したとき、ng-repeatは空、とng-optionsはnullが返ってくるようです。
【参考サイト】
コメントが承認されるまで時間がかかります。