5

部門ごとにグループ化された連絡先情報 (名前、電子メールなど) を表示したいのですが、ハンドルバーでは表示できません。

  • 部門 X

    • 連絡先 x1 情報
    • 連絡先 x2 情報
    • ...
  • 部門Y

    • 連絡先 y1 情報
    • y2 情報に連絡する
    • ...

事前にいくつの部門があるかわかりません。そのため、コントローラーで、部門がキーであり、連絡先の情報を含む配列が各部門の値である 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] を渡しました」というエラーがスローされます。ネストされたデータを使用してタスクを達成することは可能ですか? どんな助けでも大歓迎です。ありがとう。

4

1 に答える 1

5

このような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}}
于 2012-10-09T15:10:29.217 に答える