https://github.com/emberjs/dataを参照としてember-dataを使用しようとしています。Emberデータ:findAllを使用する適切な方法
具体的には、アレイコントローラを使用して、データベース内のすべての「Person」オブジェクトを表示しようとしています。私はまた、ユーザーが新しい「Person」を作成できるようにしたいと考えています。
App.peopleController = Em.ArrayController.create
content: App.store.findAll(App.Person)
newPerson: (name) ->
App.store.create App.Person,
name: name
@set('content', App.store.findAll(App.Annotation))
しかし、contentプロパティに新しい人物が作成されるたびにリセットするために非効率です:
は私が働く、次のコードを持っています。私は最後の行を削除し、次のようにコードを変更した場合:
App.peopleController = Em.ArrayController.create
content: App.store.findAll(App.Person)
newPerson: (name) ->
App.store.create App.Person,
name: name
新しいビューは、まだこれまでnewPerson呼び出しで作成されますが、同じオブジェクトが重複しています。基本的に何が起こっているのは、新しいテンプレートのすべてが、毎回新しいテンプレートの代わりに作成された最初のオブジェクトを使用することです。私はこれが以下のバグに関係していると思います:https://github.com/emberjs/data/issues/11。
{{#each App.peopleController}}
{{#view App.PersonView contentBinding="this"}}
{{#with content}}
Client id is {{clientId}}
{{/with}}
{{/view}}
{{/each}}
を私はのclientIdがすべてのPersonオブジェクトのために複製されline--私は@set('content', App.store.findAll(App.Annotation))
と一つにcode--の第二のバージョンを使用する場合:次のように
は参考までに、私のテンプレートロジックがあります。最初のバージョンでは、クライアントIDが正しいです。
誰でも光を当てることはできますか?私はこれを正しくしていますか?私の本能は、これがバグだと私に伝えていますが、わかりません。
ありがとう、うまくいけば、これはすぐに修正されます。 – ghempton
バグでした。修正プログラムを用意して、この問題のプルリクエストを提出しました:https://github.com/emberjs/data/issues/11。 – ghempton