我只想与此相反。这是工作演示:http://jsfiddle.net/KQQD2/4/
意思是,第一次链接应该是禁用和不可点击的,当我选中复选框时,我只想使链接启用并可点击。
以下是代码:
var app = angular.module('app', []);
app.controller('appCtrl', function($scope, $window){
$scope.disableIt = false;
$scope.tellAboutIt = function(){
$window.alert('ngClick fired. This alert should not show when disabled.');
};
});
app.directive('disableable', function($parse){
return {
restrict: 'C',
link: function (scope, elem, attrs) {
scope.$watch('disableIt', function (val) {
if (!val) {
elem.addClass('disabled');
elem.css('cursor', 'default');
elem.bind('click', function(e) {
e.preventDefault();
});
}
else {
elem.removeClass('disabled');
elem.css('cursor', 'pointer');
if (typeof elem.attr('ng-click') === 'undefined')
elem.unbind('click');
}
});
}
};
});
提前致谢
答案 0 :(得分:1)
你所说的行为是通过制作
来实现的"disableIt || tellAboutIt()"
到
"disableIt && tellAboutIt()"
在我在jsFiddle中找到的html部分。
答案 1 :(得分:0)
你可以这样做: 假设您拥有范围中复选框的值
$scope.data.checkValue = false
$scope.data.url = "http://foo.com"
在你看来:
<a ng-show="data.checkValue" href="data.url">bla</a>
<p ng-show="!data.checkValue">{{data.url}}</p>