簡體   English   中英

如何知道如果選中復選框則將元素添加到數組,如果未選中則將其刪除?

[英]How to know add element to an array if checkbox is checked and remove it if unchecked?

這是我的HTML代碼。 我在Google上找到了可以使用的工具。

<input type="checkbox" ng-true-value="addTitle(cpPortfolioItem)" ng-false-value="removeTitle(cpPortfolioItem)">

這是我的angularJS控制器。

$scope.addTitle = function(cpPortfolioItem){
        $scope.selectedTitles.push(cpPortfolioItem.id);
        console.log('$scope.selectedTitles', $scope.selectedTitles);
     };

     $scope.removeTitle = function(cpPortfolioItem){
        $scope.selectedTitles.splice(cpPortfolioItem.id,1);
        console.log('$scope.selectedTitles', $scope.selectedTitles);
     };

它不起作用。 我已經將其記錄在控制台中,但是我看不到它既沒有推送也沒有拼接陣列。 也許ng-true-value不是有效的指令? 有人可以幫我嗎? 我會很感激的。

根據文檔 ng-true-valueng-false-value不是事件處理程序。 這些是在input被選中( ng-true-value )或未選中( ng-false-value )時為model設置ng-false-value

改用或使用ng-model並將$watch附加到模型。

使用ng-change

<input type="checkbox" ng-change="titleChange()" ng-model="titleChanged">

在控制器中

$scope.titleChanged = false;
$scope.titleChange = function() {
   if ($scope.titleChanged) {
      $scope.addTitle(cpPortfolioItem);
   } else {
      $scope.removeTitle(cpPortfolioItem);
   }
}

工作示例: -http : //jsfiddle.net/Shital_D/Lcumc3t7/10/

暫無
暫無

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

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