如何将多选元素与对象数组绑定?

时间:2017-03-31 11:53:30

标签: javascript angularjs

我有一个元素,我想用模型绑定来获取/设置值并使用angular 1从列表中填充它

我拥有它的方式,我能够将它从UI绑定到模型,而不是反之亦然,我做错了什么?

HTML:

<div ng-controller="MyCtrl">
    <select class="form-control"        
    ng-options="o as o.prop for o in brands"  
    ng-model="selectedBrands" 
    multiple="multiple" 
    >
    </select>
</div>

JS:

var myApp = angular.module('myApp', []);

function MyCtrl($scope) {
  $scope.brands = [{
    prop: 1
  }, {
    prop: 2
  }, {
    prop: 3
  }];
  $scope.selectedBrands = [{
    prop: 2
  }];
}

的jsfiddle:

http://jsfiddle.net/4L8b7cke/

1 个答案:

答案 0 :(得分:1)

重复使用$scope.brands元素,不要为所选项目创建新元素,因为ngModel通过引用监视模型。

$scope.selectedBrands = [$scope.brands[0],$scope.brands[1]];

更新

  

默认情况下,ngModel通过引用而非值来监视模型。将select绑定到作为对象或集合的模型时,这一点很重要。

来自ngOptions documentation