Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/jquery/76.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

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/user-interface/2.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,在应用程序中,有一个多选下拉框。当获取multiselect下拉列表中选中项的值时,它有 scope.names=[1,2,4,5],这意味着我已经从列表中选择了4个名称。在On change期间,我选择了其他名称,比如scope.names=[3,4]。如何使用angularjs控制器执行此操作?我得到以下错误 TypeError: Cannot read property 'indexOf' of undefined at Scope.$scope.isChecked (mmMult

在应用程序中,有一个多选下拉框。当获取multiselect下拉列表中选中项的值时,它有

scope.names=[1,2,4,5],这意味着我已经从列表中选择了4个名称。在On change期间,我选择了其他名称,比如scope.names=[3,4]。如何使用angularjs控制器执行此操作?我得到以下错误

TypeError: Cannot read property 'indexOf' of undefined
    at Scope.$scope.isChecked (mmMultiSelect.js:85)
    at $parseFunctionCall (angular.js:12332)
    at Object.expressionInputWatch (angular.js:12735)
    at Scope.$get.Scope.$digest (angular.js:14217)
    at Scope.$get.Scope.$apply (angular.js:14488)
    at HTMLDivElement.<anonymous> (angular.js:22954)
    at HTMLDivElement.jQuery.event.dispatch (jquery.js:4409)
    at HTMLDivElement.jQuery.event.add.elemData.handle (jquery.js:4095)

#UPDATE
scope.names = [];
scope.onNamesSelected = function() {
  var names =  scope.names //get selected name list in array as [1,2,3]
  scope.onNamesChanged(); 
}

scope.onNamesChanged = function() {
  scope.names = [3,5]; //need to check this value in UI.
}
TypeError:无法读取未定义的属性'indexOf'
在Scope.$Scope.isChecked(mmMultiSelect.js:85)
$parseFunctionCall(angular.js:12332)
at Object.expressionInputWatch(angular.js:12735)
范围$get.Scope.$digest(angular.js:14217)
范围为$get.Scope.$apply(angular.js:14488)
在HTMLDEVELENT。(angular.js:22954)
位于htmldevelment.jQuery.event.dispatch(jQuery.js:4409)
位于htmldevelment.jQuery.event.add.elemData.handle(jQuery.js:4095)
#更新
scope.names=[];
scope.onNamesSelected=函数(){
var names=scope.names//将数组中的选定名称列表获取为[1,2,3]
scope.onNamesChanged();
}
scope.onNamesChanged=函数(){
scope.names=[3,5];//需要在UI中检查此值。
}
这里是一个html选项从浏览器,复选框时,选中

<div id="NameItem4CheckBox" class="ng_checkbox" ng-class="{'ng-checkbox-hover': liHover}" ng-tool-tip="" ng-click="onClick()">
        <span ng-class="{'selectedCB': isChecked(c[ngOptionId], c[ngOptionName])}" class="selectedCB"></span>
    </div>

当未检查时

<div id="NameItem0CheckBox" class="ng_checkbox" ng-class="{'ng-checkbox-hover': liHover}" ng-tool-tip="" ng-click="onClick()">
   <span ng-class="{'selectedCB': isChecked(c[ngOptionId], c[ngOptionName])}"></span>
</div>


另外,我没有检查html中的字段。所选复选框已由类“CSBSelected”标识。如何在控制器中实现。

在看不到任何代码的情况下,看起来您正在向控制器isChecked()函数传递一个未定义的函数。如果是这种情况,您可以检查undefined/null。或者,您可能需要检查您正在传递的内容是否与您期望的内容完全一致。

您可以发布相关的代码吗?您想让我们猜一下,您在代码中写了什么?这可能也有助于提供html。如果我有足够的信息,我很乐意帮忙。这对你来说够了吗。