Я пытаюсь написать простую настраиваемую директиву в Angular, которая превращает тэг в кнопку переключения (аналогично флажку). Код, который я написал до сих пор, обновляет внутреннюю переменную (изолированная область), но двусторонняя привязка не работает. Когда я нажимаю кнопку, кнопка переключается (класс css появляется и исчезает), но myVariable
не обновляется.Пользовательская директива - двусторонняя привязка не работает
Любая помощь очень ценится!
Использование
<button toggle-button="myVariable">My Button</button>
Директива код
(function() {
var directive = function() {
return {
restrict: 'A',
scope: {
toggleButton: '=checked'
},
link: function($scope, element, attrs) {
$scope.$watch('checked', function(newVal, oldVal) {
newVal ? element.addClass ('on') : element.removeClass('on');
});
element.bind('click', function() {
$scope.checked = !$scope.checked;
$scope.$apply();
});
}
};
};
angular.module('myApp')
.directive('toggleButton', directive);
}());
Это стилистическая вещь, хотя, конечно? Я хотел назвать это, потому что это имело смысл внутри страны. Есть ли * функциональная * причина, почему я не должен (в соответствии с ответом, который я принял?) –