Angular JS - нг-щелчок не работает в опции выбора [Chrome]

0

У меня есть элемент select option, чтобы изменить способ сортировки упорядоченного списка. Каждый раз, когда я выбираю другой вариант, он запускает ng-click

 <select>
     <option ng-click="sortType = ['-grade','-year']">Grade</a>
     <option ng-click="sortType = ['-year','-grade']">Year</a>
     <option ng-click="sortType = 'student'">Name</a>
</select>
<ul>
     <li ng-repeat="name in names | orderBy:sortType">{{name.student}} from {{name.year}}th year gets a {{name.grade}}</li>
</ul>

Это меняет используемую $scope я использую, чтобы указать критерии для заказа списка

$scope.sortType = ['-grade','-year'];

Проблема в том, что, хотя в Firefox это работает отлично, в Chrome ng-click просто не срабатывает.

Этот вопрос похож на этот вопрос, но в моем случае я не могу использовать ng-options. Эта ошибка также обсуждается в этом потоке, но кажется, что они связывают ее с ошибкой, которая уже отмечена как разрешенная в Chrome.

Любой альтернативный способ сделать эту работу в Chrome приветствуется. Вы можете проверить Plunkr здесь.

  • 1
    Попробуйте ngChange docs.angularjs.org/api/ng/directive/select ngChange (необязательно) string Угловое выражение, которое будет выполнено, когда выбранные параметры будут изменены из-за взаимодействия пользователя с элементом select. <select ng-model="string" [ng-change="string"] [ng-options="string"]> </select>
Теги:
google-chrome

1 ответ

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

Вместо этого вы можете использовать ng-model в сочетании со value. В этом случае при изменении значение будет присвоено sortType и оно должно работать во всех браузерах (поддерживается AngularJS), я тестировал последние Chrome и Firefox.

angular.module('app', []).controller('controller', function($scope) {
  $scope.names = [{student: 'John', year: 2015, grade: 'bachelor'}, {student: 'Arnold', year: 2016, grade: 'magister'}];
});
<script src="https://ajax.googleapis.com/ajax/libs/angularjs/1.2.23/angular.min.js"></script>
<div ng-app="app" ng-controller="controller">
<select ng-model="sortType">
     <option value="['-grade','-year']">Grade</a>
     <option value="sortType = ['-year','-grade']">Year</a>
     <option value="sortType = 'student'">Name</a>
</select>
<ul>
     <li ng-repeat="name in names | orderBy:sortType">{{name.student}} from {{name.year}}th year gets a {{name.grade}}</li>
</ul>
</div>

Здесь также обновляется плункер

Ещё вопросы

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