如下面的Angular视图中给出以下jade,我如何使用对象作为值?
div(ng-app='MyApp', ng-controller='MyCtrl')
div(ng-repeat='localField in localClientFields',ng-cloak)
select(ng-model='localField.remote_field',ng-change='changeField(localField)')
option(ng-repeat='field in remoteFields',ng-value='{{field.data}}') {{field.label}}
div
pre {{localField|json}}
供参考,数据如下:
$scope.remoteFields = [{
"label": "Studio Name",
"data": {
"field_id": 122566593,
"type": "text",
"external_id": "studio-name"
}
}, {
"label": "Membership Status",
"data": {
"field_id": 122562654,
"type": "category",
"external_id": "premier-status"
}
}
];
See this in action in this JSBin
注意:
value
),它会导致值为对象的JSON字符串表示,例如"{\"field_id\":122562654,\"type\":\"category\",\"external_id\":\"premier-status\"}"}
。 ng-value="field.data"
的身份执行此操作时,该值会生成字符串[Object Object]
。 select(ng-options="remoteFields")
(但这是在JSBin中设置) - 但 似乎正确地允许将对象分配为值。我错过了什么?我知道使用其他元素(例如单选按钮,复选框等),您可以将对象指定为值。在这种情况下给出了什么?
并且 - 对于奖励积分 - 为什么pasteBin中的ng-options
方法没有正确地预先选择该选项?