AngularJS - 选择跟踪,不在ng-model中设置列表对象

时间:2014-10-17 09:51:01

标签: javascript angularjs ng-options angularjs-ng-model

我有一个选择:

<select name="data_source" class="form-control" ng-model="data.data_source" ng-options="c.name for c in data_sources track by c.id"></select>

我的data_sources数组中的Data_source对象的格式为

{id:"myid", name:"mydatasourcename", ...}

在init data.data_source包含我从db

检索的对象
{id:"myid"}

正确的值显示在select中但在我的ng-model中我有原始的data_source对象,只有'id'属性。我在这里得到的是来自data_sources数组的对象及其所有属性(名称和其他)。 有办法吗?

1 个答案:

答案 0 :(得分:0)

虽然在更改下拉列表时,您的ng模型将自动更新所有属性。 在init上,您可以用以下方式更新data_source

data.data_source = dataFromSever
data_sources = dataListFromServer
//now get the matched obj of data_sources array by matching data_source.id
//set data_source = matchedObj.. This will ensure the correct structure of model at init