gpt4 book ai didi

Ember.js:如何从 Ember.Map 查看数据

转载 作者:行者123 更新时间:2023-12-02 19:43:33 26 4
gpt4 key购买 nike

我想查看按部门分组的一些联系信息(姓名、电子邮件等),但我无法使用 Handlebars 实现此目的。

  • X部门

    • 联系 x1 信息
    • 联系 x2 信息
    • ...
  • Y 部门

    • 联系 y1 信息
    • 联系 y2 信息
    • ...

我不知道我提前有多少部门。因此,在我的 Controller 中,我尝试在 Ember.Map 中加载信息,其中部门是其键,而包含联系人信息的数组是每个部门的值。它是这样的:

map = Ember.Map.create();
// Load data from server into map
// m = {'Department X': [{name:'x1','email':'emailx1',...},{...}], 'Department Y':[....], ...}

{{#each department in map}}
{{department}}
{{#each contact in map.keys}}
{{contact.name}} | {{contact.email}}
{{#each}}
{{#each}}

抛出错误,指出“EmberCollectionView 的内容必须实现 Ember.Array。您传递了 [object Object]”。是否可以使用嵌套数据来完成任务?欢迎任何帮助。谢谢。

最佳答案

创建一个像这样的 Department 类怎么样:

App.Department = Ember.Object.extend({
name: null
contacts: null // will be an array of App.Contact
})

还有一个像这样的 Contact 类:

App.Contact = Ember.Object.extend({
name: null,
email: null,
})

加载数据时,您可以简单地构建一个部门数组

App.departments = [];

// parse the arriving json and populate the departments array
App.departments.pushObject(
App.Department.create(
{name: dptLoadedName, contacts: [App.Contact.create({...})]}
)
)

因此,在您的模板中,您可以执行以下操作:

{{#each department in App.departments}}
{{department.name}}
{{#each contact in department.contacts}}
{{contact.name}} | {{contact.email}}
{{#each}}
{{#each}}

关于Ember.js:如何从 Ember.Map 查看数据,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12802787/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com