2017-02-01 143 views
0

我在這裏有兩個場景,一個是用戶單擊一個單獨的元素並提交,另一個是用戶單擊選擇所有按鈕並提交,以便根據用戶的要求,我想在控制器中獲取物品的詳細信息。Angular複選框選擇全部或從表中選擇個別元素

這裏是我的代碼

HTML

 <div > 
      <label class="btn btn-info"> 
      <input ng-model="vm.selectAll" type="checkbox" name="selectAll" value="allitems" > Select all Items 
      </label> 
      <button ng-click="vm.purchaseItems(item)" class="btn btn-danger" type="submit" >Purchase selected Items</button> 
     <table ng-repeat="item in vm.items"> 
      <tbody> 
       <thead> 
       <th ><input type="checkbox" ng-checked="vm.selectAll"/></th> 
       <th >Student Id</th> 
       <th >Name</th> 
       <th >School</th> 
      </thead> 
       <tr> 
       <td></td> 
       <td >{{item.studentId}}</td> 
       <td >{{item.name}}</td> 
       <td >{{item.schoolName}}</td> 
      </tr> 
      </tbody> 

     </table> 
    </div> 

控制器

vm.purchaseItems = purchaseItems; 

    function purchaseItems(item) { 
    console.log(item); 
// I want to log only selected items either single or all based on user call 
} 

我應該去同一個指令還是可以在控制器本身只是做了什麼?

+0

需要篩選複選框模型項目爲true –

+1

使用Github上的這個演示:HTTPS: //vitalets.github.io/checklist-model/ – Abhishek

+0

@Abhishek很好,但也有很多錯誤 –

回答

1

你需要一個變量來保存所選的值,然後過濾函數返回結果看到小提琴http://jsfiddle.net/SNF9x/296/

this.setUnsetAll = function(selected){ 
this.items.forEach(function(ele){ 
    ele.isSelected = selected; 
}); 
} 

this.purchaseItems = function(){ 
var selectedItems = this.items.filter(function(ele){ 
return (ele.isSelected); 
}); 

console.log(selectedItems) 
} 
+1

刪除部分選擇的情況下,如果任何一個我選擇所有選擇後,你需要刪除選擇所有這裏完成http://jsfiddle.net/SNF9x/297/ –