我有这个posts.hbs:
{{#each model as |post|}}
<a href="#" {{action 'openWriteModal' post}}>
<h3>{{post.title}}</h3>
{{post.text}}
{{post.author.name}}
</a>
{{/each}}
然后我打开我的write-modal.hbs:
{{input value=model.title size="40" escape-press='close'}}
{{model.author.name}}
{{input value=model.text size="70" escape-press='close'}}
<button {{action 'close'}}>Close</button>
<button {{action 'save' model}}>Save</button>
现在,这是我的components/write-modal.js:
export default Ember.Component.extend({
actions: {
close: function() {
return this.sendAction('close');
},
save(model) {
model.set("text", model.get("text"));
model.save().then(this.sendAction('close'));
}
}
});
这是posts.js:
export default Ember.Route.extend({
model() {
return this.store.findAll('post');
},
actions: {
openWriteModal(post) {
return this.render('modal', {
outlet: 'modal',
into: 'application',
model: this.store.findRecord('post', post.id, { reload: true }),
controller: 'application'
});
},
closeWriteModal() {
return this.disconnectOutlet({
outlet: 'modal',
parentView: 'application'
});
},
saveWriteModal(model) {
model.save();
},
......
model(params) {
return this.store.query('post', params);
}
});
在我的application.hbs中:
{{outlet}}
{{outlet "modal"}}
最后是 modal.hbs:
{{write-modal model=model close='closeWriteModal' save='saveWriteModal'}}
但我收到此错误:“未捕获的类型错误:无法读取未定义的属性‘保存’”
如何解决这个问题?