У меня есть следующий html:
<div class="btn-group">
<button type="button" class="btn btn-default dropdown-toggle" data-toggle="dropdown">
{{myValue}}
<span class="caret"></span>
</button>
<ul class="dropdown-menu">
<li ng-repeat="value in valueList">
<button class="btn btn-link" ng-click="myValue = value.key">
{{value.key}}
</button>
</li>
</ul>
</div>
В контроллере:
$scope.valueList = [ { key: "A" }, { key: "B" } ];
$scope.myValue = $scope.valueList[0].key;
Это возвращает раскрывающийся список, начинающийся с «A», где «A» и «B» являются вариантами.
Теперь приведенный выше html НЕ превратит myValue в «B» при нажатии раскрывающейся кнопки. Однако, когда я меняю ng-click на ng-click="changeValue(value.key)"
, он работает, как и ожидалось. Почему myValue = value.key
ничего не делает, а {{ value.key }}
показывает правильные вещи?
Функция для полноты:
$scope changeValue = function(valueKey) {
$scope.myValue = valueKey
}