моделирование не обновляется

0

моя угловая директива 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 уже был завершен

  • 0
    возможный дубликат stackoverflow.com/questions/18194255/…
  • 0
    Исправлена проблема, связанная с проблемой дочерней области
Теги:
angular-directive
angularjs-ng-options

2 ответа

0

Вы должны инициализировать значение для 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>
  • 0
    хорошая и скоростная работа ..
  • 0
    ng-init потерпел неудачу для меня в моем конкретном случае. Проблема заключалась в том, что используемое мной значение еще не было доступно во время выполнения ng-init: я получил значение с помощью вызова ajax, и в этот момент ng-init был уже завершен .. @ nisar @jimbrooism
Показать ещё 2 комментария
0

В вашем коде есть небольшие ошибки. См. Данный код и обновите его. Правильный код работает правильно.

угловые фрагменты

$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];

Ещё вопросы

Сообщество Overcoder
Наверх
Меню