0

我想要什么:--- 我想禁用登录页面上的几个链接,直到并且除非给出正确的密码。我可以让他们隐藏,但因为我正在学习,所以我想了解如何做到这一点。单击提交按钮将启用禁用的链接。

我做了什么:---我已经编写了代码,我认为它应该可以工作。我正在使用自定义指令和链接:绑定事件。我认为问题出在视图上(可能),可能出在 ng-controller 中。

出了什么问题:--- 所以控制器中的范围变化没有反映在指令中。因为 event.preventDefault() 没有被触发。所以最初指令作用域采用控制器中作用域的值。如果我像现在一样在控制器中设置了 $scope.linkenabled = true 的值,那么指令范围将设置为 true。但是,当我单击登录提交按钮时,尽管控制器中的 $scope.linkedenable 值由于 $scope.linkedenable = - $scope.linkedenable 而变为 false。但它没有反映在指令范围中,它仍然是 true。

这是我的代码:--- login.js

trumodule.controller("trucontrollerlogin", ['$scope', '$location', '$timeout', function ($scope, $location, $timeout) {
    ***$scope.linkEnabled = true;***
    $scope.submit = function () {
        $scope.logimg = true;
        var username = $scope.username;
        var password = $scope.password;
        if (username == "674" && password == "Dakar") {
            $scope.status = "yes";
            $timeout(function () {
                $scope.logimg = true;
                $location.path('/KnowHow');
            }, 500);
            console.log($scope.linkEnabled);
            ***$scope.linkEnabled = !$scope.linkEnabled;***
            console.log($scope.linkEnabled);
        }
        else {
            $scope.status = "no";
            $timeout(function () {
                $scope.logimg = true;
            }, 500);
        }
    }

}])
***.directive('mylink', function () {
        return {
            scope: {
                enabled: '=mylink'
            },
            link: function (scope, element, attrs) {
                element.bind('click', function (event) {
                    console.log(scope.enabled);
                    if (scope.enabled) {
                        event.preventDefault();
                    }
                });
            }
        };
    });***

索引.cshtml

<body ng-app="TruModule">
<td class="leftMenu width" ***ng-controller="trucontrollerlogin"***>
<a mylink = "linkEnabled" href="#!KnowHow"><img src="~/icons8-home-26 (2).png" /></a>
<a mylink = "linkEnabled" href="#!Employee"><img src="~/icons8-people-26.png" /></a>
<a mylink = "linkEnabled" href="#!Directives"><img src="~/icons8-book-shelf-26.png"/></a>
</td>

请帮我解决这个问题。提前致谢

4

0 回答 0