2

我有一个 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 设置为等于所有各种财团。每当我访问此表单时,现有保存的联盟都不会显示为选中状态。为了正确保存联盟,我需要对我的选择表达式进行哪些更改?

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

4

1 回答 1

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

工作完美。

于 2013-08-02T03:34:50.993 回答