我有一个表单,我试图在输入ng-checked =“someFunction()”中使用一个函数,我不知道这是否可行或我做错了什么.我在我的控制器中有功能,我在视野中调用它.至于功能,我认为它肯定正在工作,ng-checked正在解雇它,但返回true或false不会改变任何东西.那么问题是有没有办法在’ng-checked’中使用函数?
$scope.multiAnswers = function (answers,optionId) { angular.forEach(answers,function (answer,key) { if (answer.option_choice_id == optionId) { return true; } }); return false; };
ng-checked确实可以使用函数.这是一个演示:
原文链接:https://www.f2er.com/angularjs/143390.html$scope.getCheckedFalse = function(){ return false; }; $scope.getCheckedTrue = function(){ return true; };
HTML:
<input type="checkBox" ng-checked="getCheckedFalse()"/> <input type="checkBox" ng-checked="getCheckedTrue()"/>
你的问题是你在函数结束时永远不会返回true.返回true;在angular.forEach内部没有帮助.
尝试:
$scope.multiAnswers = function (answers,optionId) { var returnValue = false; angular.forEach(answers,key) { if (answer.option_choice_id == optionId) { returnValue = true; return; } }); return returnValue; };
看起来我们无法摆脱angular.forEach:Angular JS break ForEach
当answer.option_choice_id == optionId为true时,要立即提高性能.你可以试试jQuery $.each或使用vanilar javascript(for loop).