моя угловая директива ng-options не работает. При изменении параметров ng-модель не обновляется.
угловые фрагменты
scope.searchoptions = [
{ name: "All", id: 1 },
{
name: "Devices",
id: 2
}, {
name: "Sessions",
id: 3
}, {
name: "Alerts",
id: 4
},{
name: "Files",
id: 5
}];
scope.currentSearch = scope.searchoptions[0]; // Intial object
//Html snipets
<div class="form-group l-h m-a-0">
<select class="form-control"
ng-options="item.name for item in searchoptions track by item.id"
ng-model="currentSearch">
</select>
</div>
Данный код не обновляет модель при выборе опции
Обратите внимание: ng-init не удалось мне в моем конкретном случае. Проблема заключалась в том, что значение, которое я использовал, еще не было доступно в момент запуска ng-init: я получил значение через вызов ajax, и в этот момент ng-init уже был завершен
Вы должны инициализировать значение для ng-модели в select.ng-init="currentSearch = searchoptions[0]"
var app = angular.module("mainApp", []);
app.controller('mainCtrl', function($scope){
$scope.searchoptions = [
{ name: "All", id: 1 },
{
name: "Devices",
id: 2
}, {
name: "Sessions",
id: 3
}, { name: "Alerts", id: 4 },
{ name: "Files", id: 5 }
];
//$scope.currentSearch = scope.searchoptions[0].name; // Intial object
});
<script src="https://ajax.googleapis.com/ajax/libs/angularjs/1.2.23/angular.min.js"></script>
<div ng-app="mainApp" ng-controller="mainCtrl">
<div class="form-group l-h m-a-0">
<select ng-if="searchoptions" class="form-control" ng-init="currentSearch = searchoptions[0]" ng-options="item.name for item in searchoptions track by item.id" ng-model="currentSearch">
</select>
{{currentSearch}}
</div>
</div>
В вашем коде есть небольшие ошибки. См. Данный код и обновите его. Правильный код работает правильно.
угловые фрагменты
$scope.searchoptions = [
{ name: 'All', id: '1' },
{ name: 'Devices', id: '2'},
{ name: 'Sessions', id: '3'},
{ name: 'Alerts', id: '4' },
{ name: 'Files', id: '5' }
];
$scope.currentSearch = $scope.searchoptions[0];