Ember.js 从Ember中的控制器访问模型的正确方法是什么
我想知道从控制器访问模型的正确方法是什么 我注意到在控制器的init中,模型仍然为空 #controller.jsEmber.js 从Ember中的控制器访问模型的正确方法是什么,ember.js,ember-model,Ember.js,Ember Model,我想知道从控制器访问模型的正确方法是什么 我注意到在控制器的init中,模型仍然为空 #controller.js init(){ console.log(this.model); // IS NULL } 但是setupController方法具有填充的模型。因此,目前我正在从setupController调用一个控制器的方法,并在那里传递模型。这样好吗 我想在控制器中会有一个回调方法,在设置控制器时会自动调用该方法。setupControllerhook方法将模型设置为控制器的属性 s
init(){
console.log(this.model); // IS NULL
}
但是setupController方法具有填充的模型。因此,目前我正在从setupController调用一个控制器的方法,并在那里传递模型。这样好吗
我想在控制器中会有一个回调方法,在设置控制器时会自动调用该方法。
setupController
hook方法将模型设置为控制器的属性
setupController(controller,model){
this._super(...arguments);
}
您可以像控制器中的普通其他属性一样获取模型
this.get('model')
setupController
钩子方法将模型设置为控制器的属性
setupController(controller,model){
this._super(...arguments);
}
您可以像控制器中的普通其他属性一样获取模型this.get('model')
route.js
model() {
return this.store.findAll("post");
},
setupController(controller, model){
controller.set('model', model);
}
这将给出控制台日志模型,它是post对象的集合
controller.js
init(){
console.log(this.model);
}
我们大多数时候都这样做,尤其是当您使用RSVP承诺时
您选择了控制器上的模型
范例
model(params) {
return Ember.RSVP.hash({
lecture: this.store.findRecord('section', params.section_id).then((section)=>{
return this.store.createRecord('lecture',{
section: section
});
}),
section:this.store.findRecord('section', params.section_id),
course: this.store.query('course',{filter:{section_id:params.section_id}})
});
},
setupController(controller,model){
controller.set('model', model.lecture);
controller.set('section', model.section);
controller.set('course', model.course);
}
请注意,若路线上只有简单的模型
model(params) {
return this.store.findRecord('course', params.course_id);
}
您不必在控制器上进行任何设置,这也可能为您提供控制器上的模型。route.js
setupController(controller,model){
this._super(...arguments);
}
model() {
return this.store.findAll("post");
},
setupController(controller, model){
controller.set('model', model);
}
这将给出控制台日志模型,它是post对象的集合
controller.js
init(){
console.log(this.model);
}
我们大多数时候都这样做,尤其是当您使用RSVP承诺时
您选择了控制器上的模型
范例
model(params) {
return Ember.RSVP.hash({
lecture: this.store.findRecord('section', params.section_id).then((section)=>{
return this.store.createRecord('lecture',{
section: section
});
}),
section:this.store.findRecord('section', params.section_id),
course: this.store.query('course',{filter:{section_id:params.section_id}})
});
},
setupController(controller,model){
controller.set('model', model.lecture);
controller.set('section', model.section);
controller.set('course', model.course);
}
请注意,若路线上只有简单的模型
model(params) {
return this.store.findRecord('course', params.course_id);
}
您不必在控制器上进行任何设置,这也可能为您提供控制器上的型号。以下是您问题的答案。这是你问题的答案。嗯,我明白你的意思。换句话说就是这样。我所做的没有错,对吧?嗯,我明白你的意思。换句话说就是这样。我所做的不是错的,对吗?
setupController(controller,model){
this._super(...arguments);
}