私は、常に存在する事前定義された属性のセットと、ユーザーによって定義されたその他のカスタムプロパティを持つデータモデルを作成しています。Emberデータモデルにプロパティを動的に定義する
企業には多くの役割があります。このシステムを使用する各企業は、すべてのロールが異なる会社にまたがっている固定セットのプロパティに加えて、すべてのロールのカスタムプロパティを定義する必要があります。
アイデアはその後、JSON-APIにおける役割のペイロードがすべての属性、カスタムかどうかが付属していることを次のようになります。name
とsalary
は関係なく、すべてのロールに存在するデフォルトの属性、あり、上記の役割の中で
{
"id": "123",
"type": "roles",
"attributes": {
"name": "CEO",
"salary": 100000,
"favoriteColor": "blue"
}
}
会社であるが、favoriteColor
は、このロールを所有する特定の会社がすべての役割に対して必要としていたものとして定義されたカスタム属性です。
私はこれらのカスタムロールモデルの定義に属性を定義することができなくなりますことを考えると、Ember社のデータを使用して、このようなもので逃げることができれば、私は思ったんだけど:
// app/models/role.js
export default DS.Model.extend({
name: DS.attr('string'),
salary: DS.attr('number'),
})
事項を作成するにはさらに悪いことに、これらのカスタム属性は必ずしも文字列値ではなく、型の指定も可能です。したがって、会社はstring
タイプのfavoriteColor
と、タイプdate
のbirthDate
を持つことを望むかもしれません。