2016-10-23 11 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> 

これは基本的にあなたの計画アレイに「選択した」属性を追加し、それが簡単にあなたが計画配列を反復して、必要なものを引き出すために作ります。

関連する問題