2016-01-23 76 views
1

的項目當我點擊一個按鈕,並通過獲取選中schoolclass:綁定複雜的數據並獲得選擇多重選擇

$scope.selectedSchoolclasses[0]那麼就只有schoolclass schoolclassNumber像「7A」,而不是ID屬性。

這是爲什麼?綁定的schoolclasses數組及其項目具有Id和schoolclassNumber屬性。

控制器

$scope.schoolclasses = schoolclasses; 
$scope.selectedSchoolclasses = []; 

的Html

<div class="col-sm-8"> 
    <select size="5" class="form-control control-label col-sm-6" multiple ng-model="selectedSchoolclasses"> 
     <option class="co-sm-6" ng-repeat="s in schoolclasses"> 
      {{s.schoolclassNumber}} 
     </option> 
    </select> 
</div> 

回答

1

爲了能夠存儲對象的情況下,你需要使用ng-options

<select size="5" 
     class="form-control control-label col-sm-6" 
     multiple 
     ng-model="selectedSchoolclasses" 
     ng-options="s.schoolclassNumber for s in schoolclasses"> 
</select> 

在許多情況下,可以在<option>元素上使用ngRepeat而不是ngOptions來獲得類似的結果。但是,ngOptions提供了一些優點,例如通過不爲每個重複實例創建新範圍來減少內存和提高速度,併爲如何通過選擇將<select>的模型作爲理解表達式的一部分提供更多的靈活性。 <select>模型需要綁定到非字符串值時,應使用ngOptions。這是因爲選項元素目前只能綁定到字符串值。

(強調我的)