0

ページをロードするときに、現在のユーザー情報の json ハッシュを含めるとします。

インジェクションで情報をロードします:

user_data = JSON.parse(user_json)
App.Model.load(user_data['id'], user_data)
container.typeInjection('controller', 'currentUser', 'controller:currentUser')
App.set('currentUserController', controller)

しかし、ここでも currentUserController の値を設定したいと思います - App.Model.load は実際のモデル インスタンスを返しません!

それを取得するには、App.Model.find(user_data['id']) を実行する必要があります。これは起動時に行われるため、ember-model は常に json を使用するのではなく、このモデルのデータベースにクエリを実行するようですプリロードしました。

アプリの起動時にこのモデルを使用しているため、ロードを延期することはできません.ajaxリクエストを行わずに、ロードされたモデルにアクセスするにはどうすればよいですか?

4

2 に答える 2

0

私は Ember-model を使用しているため、これは ember-data とは異なる場合があります。

秘訣は、create (create record ではなく!) を使用してモデルの空のバージョンを作成し、インスタンスのロード呼び出しを使用してデータを取り込むことです。IE

            user = App.User.create()
            user.load(user_data['id'], user_data)

これにより、使用しているバージョンにデータがロードされ、didLoad が正しく呼び出されて、データがストアにあることが確認されます。

于 2013-08-24T18:32:11.057 に答える