私はEmberアプリケーションの中で、URL内の電子メールをクエリパラメータとして探し出し、それに基づいてデータを読み込みます。Emberがコンポーネントからルートにデータを送信し、それを更新します
{{user-form model=model addUser=(route-action "complete")}}
そしてコンポーネント自体:このルートから
export default Ember.Route.extend({
queryParams: {
email: true
},
actions: {
complete (data) {
this.set('model', data)
}
},
model ({ email }) {
return this.store.queryRecord('user', { email })
}
})
データとアクションがuser-form
コンポーネントに渡さなっています。私は順番にモデルを更新した経路、このコンポーネントからのデータを送信できるようにしたいと思います:
export default Ember.Component.extend({
store: Ember.inject.service(),
email: null,
actions: {
async submit() {
const store = this.get('store')
const email = this.get('email')
try {
await store.unloadAll('user')
const data = await store.queryRecord('user', { email })
await this.get('addUser')(data)
} catch (error) {
console.log(error)
}
}
}
})
何が起こるしたいことは、データがルートアクションにコンポーネントから送信された場合ということですモデルは新しいユーザーによって更新されます。それだけで、したがってstore.unloadAll('user')
。
現在、私は、クエリコンポーネントからそれに送信されるデータだけでなく、paramsは介してデータをロードできるルートを持っているかどうかはわかりません(一度に一つのレコードを持っている必要があります。
あなたは 'async'と' await'構文をどうやって得るのですか教えてください。 – kumkanillam