Javascript 循环上需要调用函数

Javascript 循环上需要调用函数,javascript,angularjs,scope,angularjs-scope,Javascript,Angularjs,Scope,Angularjs Scope,我使用ngRequired在一个简单的“是”或“否”问题上动态添加所需的值。我调用一个函数来返回一个布尔值,但由于某种原因,该函数在循环中被调用。我删除了正在执行的代码,并将其替换为一个控制台.log,我认为这可能是由于每次调用时模型都发生了更改,但循环仍然存在 指令 angular.module('ppApp').directive('questionContent', questionContent); function questionContent() { return {

我使用ngRequired在一个简单的“是”或“否”问题上动态添加所需的值。我调用一个函数来返回一个布尔值,但由于某种原因,该函数在循环中被调用。我删除了正在执行的代码,并将其替换为一个
控制台.log
,我认为这可能是由于每次调用时模型都发生了更改,但循环仍然存在

指令

angular.module('ppApp').directive('questionContent', questionContent);

function questionContent() {

    return {
        restrict: 'EA',
        require: '^^questionPanel',
        scope: true,
        template: '<div data-ng-include="questionTemplate"></div> ',
        link: function(scope, elem, attr, ctrl) {

            scope.someSelected = function (object) {
                if(object === undefined) { return }
                return Object.keys(object).some(function (key) {
                    return object[key];
                });
            }   

        }
    }
}
angular.module('ppApp')。指令('questionContent',questionContent);
函数内容(){
返回{
限制:“EA”,
要求:“^questionPanel”,
范围:正确,
模板:“”,
链接:函数(作用域、元素、属性、ctrl){
scope.someSelected=函数(对象){
if(object==未定义){return}
返回对象。键(对象)。一些(函数(键){
返回对象[键];
});
}   
}
}
}
查看

<div class="row">
    <div class="col-xl-12">
         <div class="form-check form-check-inline">
            <input type="checkbox" name="checkYes"
                   data-ng-model="validModel[question.title].yes"
                   class="form-check-input"
                   data-ng-required="!someSelected(validModel[question.title])"
                   data-ng-change=
                      "question.checkError(validModel[question.title].no);
                       isOptionValid(validModel[question.title].yes, question);"
                   data-ng-click="validModel[question.title].no = false"
                   required>
            <label for="checkYes" class="form-check-label">Yes</label>
        </div>
        <div class="form-check form-check-inline">
            <input type="checkbox" name="checkNo"
                   data-ng-model="validModel[question.title].no"
                   class="form-check-input"
                   data-ng-required="!someSelected(validModel[question.title])"
                   data-ng-change="
                      question.checkError(validModel[question.title].no);"
                   data-ng-click="validModel[question.title].yes = false"
                   required>
            <label for="checkNo" class="form-check-label">No</label>  
        </div>  
    </div>
</div>

对
不
问题


为什么
someSelected
函数被
ngRequired
在循环中调用?

你说的“在循环中”是什么意思?该模板将导致对的一个实例调用函数两次,如果一个或多个实例上有多个实例,则无论有多少问题,该函数都将被调用2*。由于某种原因,该函数在无限循环中被调用