Я использую angular-material и у меня есть элемент md-switch, модель которого устанавливается на основе значения в объекте JS.Проблема, с которой я сталкиваюсь, заключается в том, что когда пользователь нажимает на переключатель, я не хочу изменять значение объекта напрямую - вместо этого я хочу выполнить функцию, которая находится в объекте, который изменяет значение для меня.
В коде (или JSFiddle ниже) вы можете видеть, что состояние переключения никогда не меняется.
Это тривиальный пример, поэтому он не объясняет причину, но возможно что-то подобное?
Вот пример кода
HTML
<div class="inset switchdemoBasicUsage" ng-controller="SwitchDemoCtrl" ng-cloak="" ng-app="MyApp">
<md-switch ng-model="data.state" aria-label="Switch 2" class="md-primary" ng-change="data.change()">
{{ data.state }}
</md-switch>
</div>
JS
angular.module('MyApp',['ngMaterial', 'ngMessages', 'material.svgAssetsCache'])
.controller('SwitchDemoCtrl', function($scope) {
$scope.data = {
state: true,
change: function() {
this.state = !this.state;
}
};
});
Вот ссылка на JSFiddle: http://jsfiddle.net/wx8s709z/