Мне труднее всего заставить работать двустороннюю привязку для элементов SELECT. Я пытаюсь программно изменить выбранный элемент. Я нашел несколько примеров Stackoverflow для привязки события изменения к SELECT, но не так уж много я пошел другим путем, когда код вашего приложения изменяет выбранный элемент.
Я обнаружил, что некоторые из них используют ng-repeat для элемента OPTION, но я: а) не смог заставить его работать, и б) не похоже на «Angular Way».
HTML-код:
<div ng-controller="SIController">
<select id="current-command" ng-model="currentCommand"
ng-options="c as c.label for c in availableCommands track by c.id"></select>
<button ng-click="changeSelectedOption()">Select "open"</button>
Controller Code:
var myApp = angular.module('myApp', []);
function SIController($scope) {
$scope.availableCommands = [
{id: 'edit', label: 'Edit'},
{id: 'open', label: 'Open'},
{id: 'close', label: 'Close'}
];
$scope.currentCommand = "close";
$scope.changeSelectedOption = function() {
$scope.currentCommand = 'open';
};
};
Я могу убедиться, что $scope.currentCommand изменяется при нажатии кнопки, но ВАРИАНТ, похоже, не выбирается.