2014-09-16 2 views
0

Если я установил значение выпадающего значения, поскольку объект не работает должным образом.Как установить ng-параметры по умолчанию с помощью объекта?

для примера: HTML:

<select ng-model="selected" ng-options="lst as lst.name for lst in list"></select> 

JS:

$scope.list=[{'name':'Person-1','age':23}, 
    {'name':'Person-2','age':14}, 
    {'name':'Person-3','age':32}, 
    {'name':'Person-4','age':34}, 
    {'name':'Person-5','age':67}, 
    {'name':'Person-6','age':12}]; 

    $scope.selected = {'name':'Person-3','age':32}; 

Если я присвоить значение как $ scope.selected = $ scope.list [0] работает нормально. Но теперь, как я могу назначить объект для выбора.

я прилагаю ссылку plunker: http://plnkr.co/edit/WJo0W688s5NDN7kZYOPR?p=preview

+0

Что вы пытаетесь достичь? Если вы хотите установить выбранный объект, он действительно должен быть объектом вашего списка. –

ответ

1

Это потому, что объект, который вы назначаете не существует в $ scope.list. Однако это выглядит так же, но это другой объект. $scope.list[0] работает, потому что он указывает на ту же ссылку на объект, что и у объекта $ scope.list.

См. Обновленный плункер, чтобы вы могли понять.

Updated

Если у вас есть объекты, то вам нужно перебрать $scope.list путем сравнения свойств и найти индекс соответствующего объекта и использовать этот индекс для назначения выбранного объекта, как.

$scope.selected = $scope.list[matchIndex] 
+0

Спасибо за ваш ответ @jay, но есть ли другой способ, кроме итерации над списком – Webfreaks

+0

Вы можете использовать библиотеку Underscore.js. Существует функция i.e pluck, которую можно использовать здесь. –

-1
$scope.selected = $scope.list[0]; 

Это, как вы установите параметр по умолчанию