0

Ember Data レコードの配列の各要素に固有の略語を作成したいと考えています。たとえば、Persons テーブルに次のレコードがあるとします。

name: Mike Jones
department: IT

name: Mike Smith
department: IT

name: John Doe
department: Accounting

name: Jane Doe
department: Accounting

私が望むのは、次のような出力です。

IT
MJ: Mike Jones
MS: Mike Smith

Accounting
JoD: John Doe
JaD: Jane Doe    

ご覧のとおり、配列内のすべての項目を分析することによってのみ、各人物に固有の略語を割り当てることができます。

これは、Ember ドキュメントの残りの Todo の数を計算するのと少し似ています: http://guides.emberjs.com/v2.0.0/object-model/computed-properties-and-aggregate-data/

しかし、そのガイドでは、時代遅れであると私が理解しているコントローラーの使用について説明しており、Ember Data の操作については説明していません。

テンプレートは次のようになると思いますが、ルートに何を追加すればよいでしょうか?

{{#each model as |department|}}
{{department.name}}
{{#each department.persons as |person|}}
{{person.computedAbbreviation}}: {{person.name}}
{{/each}}
{{/each}}
4

1 に答える 1

0

これはプレゼンテーションの問題であるため、ヘルパーを使用する必要があります。

import Ember from 'ember';

const { Helper: { helper } } = Ember;

export function nameInitials([name]) {
  return name.match(/\b(\w)/g).join('').toUpperCase();
}

export default helper(nameInitials);

そして、テンプレートでそれを使用します:

{{name-initials person.name}}

人の名前の最初の 2 文字が必要な場合は、ロジックを変更してcharAtに頼る必要があります。ロジックは次のようになります。

export function nameInitials([name]) {
  let [firstName, lastName] = name.split(' ');
  return `${firstName[0].toUpperCase()}${firstName[1]}${lastName[0].toUpperCase()}`;
}
于 2015-09-11T08:42:20.753 に答える