如何处理Angular.js中的嵌套数据在表单中选择?

时间:2013-08-01 18:10:43

标签: node.js mongodb angularjs mongoose pug

我有一个node.js应用,其中表单有一个选择器。该应用程序通过mongoose从mongodb加载数据并填充嵌套的引用对象。所以我的数据看起来像:

{ "__v" : 0,
  "_id" : ObjectId( "51199c96c13e06ae33000001" ),
  "consortium" : 
     { _id: '510f234198e6c75a3a1b43eb',
       imageURLsm: '/asdf.jpg',
       name: 'COOLNAME' },
  "description" : "My Description",
  "gdp" : 1234,
  "imageURL" : "http://foo.com",
  "location" : "http://bar.com",
  "name" : "My Cool Name",
  "ownerKey" : "d15e6de2-66c0-4e0c-a0bc-2023b65e87d0",
  "ownerName" : "Asdf Jkls",
  "parcelId" : "eb7fxbc4-581f-83c7-6abe-6e1e0474520f",
  "people" : 1 }

然后在我的玉模板中我有:

div.title.name
    label(for='name') Name:
    input(ng-model='form.name', name='name')
div.title.description
    label(for='description') Description:
    textarea(ng-model='form.description', name='description', cols='50', rows='15')
div.title.consortium.name
    label(for='consortium.name') Consortium:
    select(ng-model='form.consortium.name', name='consortium.name', ng-options="consortium.name for consortium in consortia")
div.title.gdp
    label(for='gdp') GDP:
    input(ng-model='form.gdp', name='gdp')
    p
        button(ng-click='savePlanet()') Save

当我点击保存按钮时,它会保存除联盟以外的所有内容。由于在其他地方我已将$ scope.consortia设置为等于所有各种联盟,因此各个联盟的列表正确填充。每当我访问此表单时,现有保存的联盟都不会显示为已选中。我需要更改我的选择表达式才能正确保存财团?

在从行星模型提供数据时,我正在填充联盟,因此在浏览器中,您确实获得了上述所有数据。在那。但我只是不知道我应该用这个选择表达式做什么。任何帮助都会非常感激!!

1 个答案:

答案 0 :(得分:2)

select(ng-model='form.consortium._id', name='consortium._id', ng-options="consortium._id as consortium.name for consortium in consortia")

工作得很好。