0

sinatrajson-appと通信するember-dataを使用してコードを実装しました。メソッドfindAllは期待どおりに機能し、レコードをロードします。また、DS.Store.createにupdateRecordメソッドを実装しましたが、更新とコミットの方法がよくわかりません。ここのコードを参照してください(簡潔にするために、jquery関数は含めませんでした):http://pastie.org/3197008

私は次のことを試しました:

a = Todos.records.objectAt(0).set("text", "should be so")
a.store.commit()

しかし、次のエラーが発生します。TypeError: Object (subclass of DS.State) has no method 'enter'

レコードを更新するにはどうすればよいですか?または、更新のために何かを実装するのを忘れましたか?

前もって感謝します!

4

2 に答える 2

4

私も同じ問題を抱えていました。これはember-dataのバグだと思います。問題は、コードが特定のサブステートを適切に初期化しておらず、それらのサブステートがステートインスタンスではなく、ステートクラスであったことです。

呼び出されるたびに(適切に作成されたサブステートを持つ)新しい状態インスタンスを生成する関数を定義することで、問題を修正しました。ここで私の変更を見つけることができます。

また、残り火データの人々に私の修正をプルするように要求したので、この問題がすぐになくなることを願っています。ディスカッションのプルリクエストを表示できます。

于 2012-01-17T18:24:13.483 に答える
2

私は今朝同じ問題を抱えていました。emberjsgitバージョンを使用する

于 2012-01-16T21:45:18.927 に答える