Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/439.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/angularjs/24.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 使链接以角度启用和禁用_Javascript_Angularjs - Fatal编程技术网

Javascript 使链接以角度启用和禁用

Javascript 使链接以角度启用和禁用,javascript,angularjs,Javascript,Angularjs,我只想做与此相反的事情。以下是工作演示: 这意味着,第一次链接应该是禁用和不可点击的,当我选中复选框时,我只想使链接启用和可点击 代码如下: var app = angular.module('app', []); app.controller('appCtrl', function($scope, $window){ $scope.disableIt = false; $scope.tellAboutIt = function(){

我只想做与此相反的事情。以下是工作演示:

这意味着,第一次链接应该是禁用和不可点击的,当我选中复选框时,我只想使链接启用和可点击

代码如下:

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');
                    }
                });
            }
        };
    });

提前感谢

您所说的行为是通过

"disableIt || tellAboutIt()"


在我在JSFIDLE中找到的html部分中。

您可以这样做: 假设您在范围中有复选框的值

$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>

{{data.url}


it's not Working.。正如您所说,当我们将其更改为“true”时,您可以在fiddle中看到。它在第一次启用复选框时,我想要的是“当我选中复选框时,我只想使链接启用并可点击”您的意思是您还想将文本更改为“ngClick enabled link”?不,这不是我想要实现的。我想要的是,在第一时间复选框应该被取消选中,链接应该被禁用,也不可点击。当选中复选框时,我想使链接启用并可单击,就是这样。我打开了您给我们的链接,发现if(!val)现在是if(val)。您要求的是使用$scope.disableIt=false;如果(!val)。你的问题没有提到这一点。您所说的行为是通过在html部分中将“disableIt | | tellAboutIt()”设置为“disableIt&&tellAboutIt()”实现的。我不想显示/隐藏数据。我只想根据复选框值使链接可点击或不可点击。@user5320720然后,而不是
ng show
try
ng disabled
<a ng-show="data.checkValue" href="data.url">bla</a>
<p ng-show="!data.checkValue">{{data.url}}</p>