在角度选择选项中使用对象作为值

时间:2016-06-21 21:21:15

标签: javascript angularjs object

如下面的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

注意:

  1. 如上所述(使用value),它会导致值为对象的JSON字符串表示,例如"{\"field_id\":122562654,\"type\":\"category\",\"external_id\":\"premier-status\"}"}
  2. 当我以ng-value="field.data"的身份执行此操作时,该值会生成字符串[Object Object]
  3. 由于其他一些原因,我一直无法使用select(ng-options="remoteFields")(但这是在JSBin中设置) - 但 似乎正确地允许将对象分配为值。
  4. 我错过了什么?我知道使用其他元素(例如单选按钮,复选框等),您可以将对象指定为值。在这种情况下给出了什么?

    并且 - 对于奖励积分 - 为什么pasteBin中的ng-options方法没有正确地预先选择该选项?

0 个答案:

没有答案