我有一个注册表单页面,以及一些链接,条款和条件页面。当我点击这个条款和条件链接时,它打开了另一个页面,当我回到注册页面时,我放在表单上的数据不再存在。 我的注册路线如下:
import Ember from 'ember';
export default Ember.Route.extend({
model() {
return this.store.createRecord('post');
},
actions:{
createPost(post){
post.save().then(function(){
//on success
},function(message){
//on error
});
}
}
});
我回去后如何保存数据?
答案 0 :(得分:0)
您需要在单例中创建记录,该单例将是Ember案例中的控制器或服务,然后在模型钩子中返回该记录。看一下这个twiddle的工作示例。您需要的代码的快速示例:
//services/persistance-helper.js
export default Ember.Service.extend({
store: Ember.inject.service(),
rememberRecord(type, record){
this.set(type,record)
},
retrieveRecord(type){
const record = this.get(type)
console.log('record:',record)
if(record){
return record
}else{
return this.get('store').createRecord(type)
}
},
removeRecord(type){
this.set(type,null)
}
})
//routes/post.js
export default Ember.Route.extend({
persistanceHelper: Ember.inject.service(),
model(){
return this.get('persistanceHelper').retrieveRecord('post')
},
actions:{
willTransition(){
console.log()
if(this.currentModel.get('dirtyType') === 'created'){
this.get('persistanceHelper').rememberRecord('post',this.currentModel)
}else{
console.log('else:',this.currentModel.get('dirtyType'))
console.log('record was saved ?')
}
},
save(){
this.currentModel.save().then((record)=>{
this.get('persistanceHelper').removeRecord('post')
})
}
}
})
我认为代码的描述性足以不添加更长的解释:)