2016-10-23 80 views
0

我剛開始使用angularJS,並試圖學習如何在用戶單擊複選框並稍後訪問這些值時如何在數組中插入字符串。在用戶選擇複選框時將字符串存儲在數組中

這是我到目前爲止有:

<md-button class="toolbar-button" ng-click="removePlan()"> 
    <md-icon>delete</md-icon> 
</md-button>  
<md-list-item ng-repeat="plan in plans"> 
     <md-checkbox ng-model="plansSelected[plan._id]"> </md-checkbox> 
    </md-list-item> 

apps.js

$scope.plansSelected = [] 
$scope.removePlan = function() { 
    for (var plan in $scope.plansSelected) { 
     if ($scope.plansSelected[plan] === true) { 
      projectResource.removePlan(plan).then(function (data) { 
      if (data.success) { 
       $scope.plans.push(data.plan) 
      } 
      }) 
     } 
    } 
} 

projectResource.js

resource.removePlan = function (planId) { 
    return $http.delete(getPlanUrl(planId)).then(processResponse, processError) 
} 

function getPlansUrl() { 
    return getProjectUrl() + '/plans' 
    } 

    function getPlanUrl() { 
    return getPlansUrl() + '/' + $route.current.params.planId 
    } 

在調試器,這是我的數組看起來像:

$scope.plansSelected: Array[0] 
57bd40128a58022800887d80:false 
57bd40328a58022800887d88:false 
57cc2bcbb452140500b0334a:false 

我正在檢查用戶是否從複選框中刪除了選擇,如果該值爲true,則取該plan._id並將循環傳遞給removePlan函數。

有沒有人看到我做錯了什麼,因爲這是行不通的。

回答

1

請更具體地說明「這不起作用」的含義 - 我們很難檢測到它無法運行。

我可以看到,您使用$ scope.plansSelected作爲一個空數組是錯誤的。我將與發放,並像這樣做:

<md-list-item ng-repeat="plan in plans track by $index"> 
    {{plan.name}} <md-checkbox ng-model="plans[$index].selected"> </md-checkbox> 
</md-list-item> 

這基本上增加了一個「選擇」屬性你的計劃陣列,並使其更容易讓你在計劃陣列進行迭代,並拔出你想要的那些。

相關問題