AngularJS ngModel директива в select
Я работаю над проектом angularjs, и у меня проблема с ngModel
не обязательным в пределах select. Но та же концепция работает в другом теге select и на той же странице html.
Ниже приведен код.
<select ng-model="selectedFont"
ng-options="font.title for font in fonts"
ng-change="onFontChange()">
</select>
onFontChange()
функция помещается в контроллер.
Любая помощь очень заметна... Спасибо заранее.
Ответы
Ответ 1
Основываясь на игре Тони-Пони:
<div ng-app ng-controller="MyCtrl">
<select ng-model="opt"
ng-options="font.title for font in fonts"
ng-change="change(opt)">
</select>
<p>{{opt}}</p>
</div>
С контроллером:
function MyCtrl($scope) {
$scope.fonts = [
{title: "Arial" , text: 'Url for Arial' },
{title: "Helvetica" , text: 'Url for Helvetica' }
];
$scope.change= function(option){
alert(option.title);
}
}
http://jsfiddle.net/basarat/3y5Pw/43/
Ответ 2
Сначала создайте данные (могут быть локальными или с сервера) в контроллере. И инициализируйте значение по умолчанию, которое вынуждает элемент по умолчанию, выбранный в форме HTML.
// supported languages
$scope.languages = ['ENGLISH', 'SPANISH', 'RUSSIAN', 'HINDI', 'NEPALI'];
// init default language
$scope.language = 'ENGLISH';
Теперь в вашей HTML-форме
<select class="form-control" ng-model="language">
<option ng-repeat="language in languages">{{language}}</option>
</select>
Снимок экрана здесь (примечание bootstrap CSS используется и не включено здесь).
![enter image description here]()
Вы можете выполнить тест в контроллере, независимо от того, работает ли это изменение.
$scope.$watch('language', function (newVal, oldVal) {
console.log(oldVal + " -> " + newVal);
});
ENGLISH → RUSSIAN
РОССИЯ → ИСПАНСКИЙ
ИСПАНСКИЙ → РОССИЙСКИЙ
Надеюсь, это полезно. Спасибо!