Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/423.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 当用户在Angularjs中单击链接时,如何禁用多次_Javascript_Jquery_Angularjs - Fatal编程技术网

Javascript 当用户在Angularjs中单击链接时,如何禁用多次

Javascript 当用户在Angularjs中单击链接时,如何禁用多次,javascript,jquery,angularjs,Javascript,Jquery,Angularjs,我在click='VewItems(id)'中使用ViewItems()函数调用Angularjs中控制器中的方法,但这似乎还不太好,因为当用户单击更多时间从模型加载的图像时,它将获得更多图像或元素,我将其添加到div中,与单击的数量相当 这是我的功能 $scope.ViewItems = function ($id) { $('.modal-title').html(''); $('#bookimg').html(''); // Fetch

我在click='VewItems(id)'中使用ViewItems()函数调用Angularjs中控制器中的方法,但这似乎还不太好,因为当用户单击更多时间从模型加载的图像时,它将获得更多图像或元素,我将其添加到div中,与单击的数量相当

这是我的功能

 $scope.ViewItems = function ($id) {

        $('.modal-title').html('');
        $('#bookimg').html('');
        // Fetch an item from book list
        if($id) {

            id = $id;
            $http({
                method: 'GET',
                url: url+id,
            }).then(function successCallback(response) {
                var http_code = response.data.s_respond;
                $('<div id="loading"></div>').appendTo('body');
                if (http_code === 200) {

                    SetErrors(http_code, 'OK');
                    var book_items = JSON.parse(response.data.data);
                    $('<h3>'+book_items.title+'</h3>').appendTo('.modal-title');
                    $('<img src=" '+book_items.image+' " width="100%" />').appendTo('#bookimg');
                    $('#myModal').modal({backdrop: 'static', keyboard: false});
                } else {

                    SetErrors(http_code, 'warning');
                }
            }, function errorCallback(response) {
                SetErrors(http_code, response.textStatus);
            });
        }
    };
$scope.ViewItems=函数($id){
$('.modal title').html('');
$('#bookimg').html('');
//从书单中取一项
如果($id){
id=$id;
$http({
方法:“GET”,
url:url+id,
}).then(函数成功回调(响应){
var http_code=response.data.s_response;
$('')。附于('正文');
如果(http_代码===200){
设置错误(http_代码“OK”);
var book_items=JSON.parse(response.data.data);
$(''+图书项目.title+'')。附录('.modal title');
$('')。附录('#bookimg');
$('#myModal').modal({background:'static',keyboard:false});
}否则{
设置错误(http_代码“警告”);
}
},函数errorCallback(响应){
设置错误(http_代码、response.textStatus);
});
}
};
HTML


维护一个变量
isClicked
,并相应地处理回调

var isClicked = false;
$scope.ViewItems = function ($id) {
    if (isClicked) {
         return;
    }
    isClicked = !isClicked;

    ...

}

维护一个变量
isClicked
,并相应地处理回调

var isClicked = false;
$scope.ViewItems = function ($id) {
    if (isClicked) {
         return;
    }
    isClicked = !isClicked;

    ...

}

只需创建一个数组即可解决此问题

var loadedIds = [];
$scope.ViewItems = function ($id) {
    var index = loadedIds.indexOf($id);
    if(index == -1){
        loadedIds.push($id);
        -------
    }
};

只需创建一个数组即可解决此问题

var loadedIds = [];
$scope.ViewItems = function ($id) {
    var index = loadedIds.indexOf($id);
    if(index == -1){
        loadedIds.push($id);
        -------
    }
};

单击一个标志
isClicked
是不够的,因为可能有多个链接可供用户单击。如果用户单击任何一个链接,您的解决方案将禁用所有链接。如果有多个处理程序,您必须相应地更改代码。我想OP只有一个处理程序。一个标记
isClicked
是不够的,因为可能有多个链接可供用户单击。如果用户单击任何一个链接,您的解决方案将禁用所有链接。如果有多个处理程序,您必须相应地更改代码。我想OP只有一个处理器。