我正嘗試在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);
}());
這是一種風格的東西,雖然,肯定?我想命名它,因爲它在內部是有意義的。是否有*功能*理由爲什麼我不應該(根據我接受的答案)? –