提问者:小点点

如何从Ember.Map查看数据


我想查看一些联系信息(姓名,电子邮件,…)按部门分组,但我无法实现它与手柄。

>

  • X部门

    • 联系x1 info
    • 联系x2 info

    Y系

    • 联系y1 info
    • 联系y2 info

    我不知道我提前有多少个部门。所以,在我的控制器中,我试图在一个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}}
    

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


  • 共1个答案

    匿名用户

    创建这样的部门类怎么样:

    App.Department = Ember.Object.extend({
      name: null
      contacts: null // will be an array of App.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}}