AngularJS - Избранные локалитики меняются, не работают

0

Я пытаюсь определить, когда я выберу вариант из выпадающего списка выбранных локалей AngularJS.

Вот код для выпадающего списка:

<select chosen data-placeholder="Buscar..." 
    class="w-100" 
    ng-model = "medSearchType"
    ng-change = "changeMedSearch(medSearchType)">
        <option value="Medicamento">Medicamento</option>
        <option value="Componente">Componentes Activos</option>
</select>

И в моем контроллере у меня есть следующая функция:

$scope.changeMedSearch = function (searchType) {
    console.log(searchType);
}

Он работает нормально в первый раз, но если я хочу выбрать другую опцию в консоли, я получаю следующую ошибку, и в раскрывающемся списке не будет выбран другой параметр, который я хочу выбрать:

Uncaught TypeError: Невозможно установить свойство "selected" из неопределенного

Как я могу это решить?

Большое спасибо.

Теги:
angularjs-ng-change
angular-chosen

2 ответа

0
Лучший ответ

Я следовал совету MrJSingh и использовал ng-options, но проблема все же произошла.

Я добавил потом пустой, и он, наконец, работал

<select chosen data-placeholder="Buscar..." 
     ng-model = "medSearch"
     ng-change = "changeMedSearch(medSearch)"
     ng-options = "size as size for size in medSearchTypes">
     <option></option>
</select>
  • 0
    Я не понимаю, почему вам нужен пустой тег? Вы можете опубликовать свой рабочий код?
-1

Вместо этого попробуйте использовать ng-options.

angular.module("app",[]).controller("ctrl",function($scope){
    $scope.items = [1,2,3,4,5,6]
    $scope.changeMedSearch = function(medSearchType){
      alert(medSearchType)
    }
  })
<!DOCTYPE html>
<html>
<head>
  <meta charset="utf-8">
  <meta name="viewport" content="width=device-width">
  <title>JS Bin</title>
<script src="https://ajax.googleapis.com/ajax/libs/angularjs/1.4.0/angular.min.js"></script>
  
</head>
<body ng-app="app" ng-controller="ctrl">
  <select ng-model = "medSearchType"
    ng-change = "changeMedSearch(medSearchType)" ng-options="size as size for size in items" 
   ng-model="item" ng-change="update()"></select>
</body>
</html>
  • 0
    Все та же ошибка, если я уберу выбранную директиву, она работает, но мне нужно, чтобы она была с директивой
  • 0
    ага тогда есть другой подход для этого, вы можете использовать $ scope. $ watch
Показать ещё 2 комментария

Ещё вопросы

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