Angularjs 隔离作用域的函数被多次调用
我编写了一个angular代码来实现Like和remove Like功能。为此,我使用了一个指令“like directive”,它有三个功能 1.upFn:需要时执行的代码 2.downFn:删除类似项时要执行的代码 3.upvChk:检查是否喜欢它的函数。我是从假的开始的 由于某些原因,我不能使用带有ng if的变量。我必须使用upvChk函数。但是这个函数被调用了不止两次。应该只调用两次,因为我使用了两次ng if 这是代码笔链接Angularjs 隔离作用域的函数被多次调用,angularjs,Angularjs,我编写了一个angular代码来实现Like和remove Like功能。为此,我使用了一个指令“like directive”,它有三个功能 1.upFn:需要时执行的代码 2.downFn:删除类似项时要执行的代码 3.upvChk:检查是否喜欢它的函数。我是从假的开始的 由于某些原因,我不能使用带有ng if的变量。我必须使用upvChk函数。但是这个函数被调用了不止两次。应该只调用两次,因为我使用了两次ng if 这是代码笔链接 angular.module('app',[]) .co
angular.module('app',[])
.controller('MainCtrl',['$scope',MainCtrl])
.指令('likeDirective',[likeDirective]);
函数MainCtrl($scope){
var mcl=这个;
mcl.checkUpvoted=checkUpvoted;
mcl.upvote=upvote;
mcl.downvote=downvote;
函数checkUpvoted(){
警报(“检查是否喜欢的功能”);
返回mcl.upvoted;
}
函数upvote(){
警报(“类似已完成”);
mcl.upvoted=true;
}
函数downvote(){
警报(“不喜欢已完成”);
mcl.upvoted=false;
}
}
函数likeDirective(){
返回{
限制:'E',
范围:{
upFn:“&upFn”,
downFn:“&downFn”,
upvChk:“&upvChk”
},
templateUrl:'tpl.html'
}
}
喜欢
这可能是由于消化循环以角度工作的方式造成的。在第一次运行时,它将检查值并调用upvChk()
。第一次摘要运行完成后,它将再次运行,以查看在第一次摘要运行期间是否有任何更改,从而再次调用upvChk()
。摘要循环将一直运行,直到检测不到任何更改或达到10次迭代,然后它将抛出一个错误。有没有办法只运行一次?可能没有,因为它是角度摘要循环调用它。您可以尝试一次性绑定,但我不确定这是否适用于函数。这可能是因为摘要循环在函数中的工作方式。在第一次运行时,它将检查值并调用upvChk()
。第一次摘要运行完成后,它将再次运行,以查看在第一次摘要运行期间是否有任何更改,从而再次调用upvChk()
。摘要循环将一直运行,直到检测不到任何更改或达到10次迭代,然后它将抛出一个错误。有没有办法只运行一次?可能没有,因为它是角度摘要循环调用它。您可以尝试一次性绑定,但我不确定这是否适用于函数。