[AngularJS]不断变化的 NG-Click 函数

发布时间: 2017/4/16 20:32:26
注意事项: 本文中文内容可能为机器翻译,如要查看英文原文请点击上面连接.

有一个按钮,调用一个函数。该函数将加载笔记并向他们展示在短短。一旦注意到已加载,我想要改变在获取调用的函数的 ng-click 。下面是我的代码。

$scope.loadNotes = function(id){
    $scope.span = document.getElementById("note" + id);

    $scope.span.innerHTML = '<i class="fa fa-spinner fa-4x fa-spin"></i>';

    $http({
        method: "post",
        url: "scripts/getTicketNotes.php",
        data: {
            id: id
        },
        headers: {'Content-Type': 'application/x-www-form-urlencoded'}
    }).then(function successCallback(res){
        $scope.span.innerHTML = res.data;
        document.getElementById("button" + id).setAttribute("ng-click", "hideNotes("+id+")");
        document.getElementById("button" + id).innerHTML = "Hide Notes";

    }, function errorCallback(res){

    });

};

$scope.hideNotes = function(id){
    $scope.spanNotes = document.getElementById("note" + id);

    if($scope.spanNotes.style.display == 'none'){
        $scope.spanNotes.style.display = 'block';
        document.getElementById("button" + id).innerHTML = "Hide Notes";
    }else{
        span.style.display = 'none';
        document.getElementById("button" + id).innerHTML = "Show Notes";
    }
};

问题是,该按钮将仍然运行 loadNotes 功能,即使代码检查器在 Chrome 中的说的值 ng-clickhideNotes() 。不知道为什么这件事虽然。

解决方法 1:

您可以使用 ng-if 指令在 HTML 中,在您的控制器获取设置当您显示您的笔记蹒跚学步的元素时使用的标志值。

例如

<div ng-if="!notesShown" ng-click="loadNotes()">
<div ng-if="notesShown" ng-click="hideNotes()">

和在你的 conrtoller,将 notesShown 值设置为所需。

官方微信
官方QQ群
31647020