4

我是AngularJS的新手,因此如何將複選框或多選下拉菜單綁定到單獨的列表中,使我感到困惑。綁定複選框或在AngularJS中多選下拉到數組?

<body ng-controller="FooListCtrl"> 
    <span ng-repeat="foolist in foos"> 
    <select ng-model="selected" ng-options="foo for foo in foolist" multiple=""> 
    </select> 
    </span> 
</body> 
'use strict'; 

function FooListCtrl($scope) { 
    $scope.foos = {"Bar": [ "foo", "bar"]}; 
    $scope.selected = []; 
} 

FooListCtrl.$inject = ['$scope']; 

運行代碼:http://jsfiddle.net/gBcN2/

回答

2

如果我對你想要的東西:

  1. 你不必ng-app定義。
  2. 對於jsFiddle的AngularJS片段,請將No wrap - in <head>加載模式,如果您使用AngularJS作爲外部資源。
  3. 模型selected有它自己的「範圍」,因爲您使用ng-repeat。要明白我的意思,這裏是你的代碼的固定版本: http://jsfiddle.net/gBcN2/2/

首先{{selected}}工作正常,但第二個是ng-repeat範圍「外」。

PS:
您不必使用ng-repeat如果你想使用它就像你在你的例子中寫道:quick fiddle of how I'd do it.

編輯:
對於複選框它類似的東西 - http://jsfiddle.net/qQg8u/2/

+0

非常好,謝謝你的幫助。如果可能的話,你還可以告訴我一個複選框的例子是什麼樣的? :) –

+0

當然,請檢查這篇文章的編輯。 –

+0

謝謝,那很好;但有沒有不編輯源JSON(與'checked:false'值)? –