簡體   English   中英

在angularjs控制器中檢查復選框值

[英]checked checkbox values in angularjs controller

在應用程序中,有一個multiselect-dropbox。 當獲得多選下拉列表中選中項目的值時,它具有

scope.names = [1,2,4,5]這意味着我從列表中選擇了4個名稱。 在更改期間,我選擇了其他名稱,例如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.
}

這是來自瀏覽器的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。 或者,您可能要檢查傳遞的內容與預期的內容完全相同。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM