2017-03-31 47 views
1

我有一個元素,我想綁定一個模型來獲取/設置值,並使用角度從列表中填充它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

重複使用$scope.brands元素,不要爲選定項目創建新的元素,因爲ngModel通過引用來觀察模型。

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

更新:

默認情況下,ngModel觀看由參考模型,而不是價值。這對於將選擇綁定到作爲對象或集合的模型時很重要。

ngOptions documentation

+0

我明白了。謝謝! –

+0

我會在十分鐘內接受這個答案(所以現在不會讓我這麼做) –

+0

@Matej:對於我們不熟悉Angular的人(我將自己列入該列表),你能解釋一下問題是什麼,爲什麼它是一個問題,這個答案如何解決這個問題? (然而,我接受「這很神奇」可能是解釋。) –

相關問題