绑定复杂数据并获取多项选择的选定项目

时间:2016-01-23 13:55:39

标签: angularjs

当我点击一个按钮并通过以下方式获取所选的学校课程时:

$scope.selectedSchoolclasses[0]然后只有学校班级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 个答案:

答案 0 :(得分: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>元素而不是ngOptions上使用ngRepeat来实现类似的结果。但是,ngOptions提供了一些好处,例如通过不为每个重复实例创建新范围来减少内存和提高速度,以及通过select选择为<select>模型分配方式提供更大的灵活性。理解表达的一部分。当<select>模型需要绑定到非字符串值时,应使用 ngOptions。这是因为选项元素目前只能绑定到字符串值。

(强调我的)