我尝试了一个简单的应用程序,但我很困惑,因为什么时候在控制器中使用模型钩子,什么时候去路由模型钩子.以此为例(使用EmberCLI):
模板(templates/discovery.hbs)
{{#each model}}
<tr>
<td>
Q: {{ques}}
</td>
</tr>
{{/each}}
Run Code Online (Sandbox Code Playgroud)
所以我可以用以下两种方式定义模型
**第一路(路线/ discovery.js)**
import Ember from "ember";
export default Ember.Route.extend({
model : function(){
return this.store.all('questions') ;
}
});
Run Code Online (Sandbox Code Playgroud)
这与预期一样,所有类型问题的记录都传递并在discovery.hbs模板中显示.
第二种方式(controllers/discovery.js)
import Ember from "ember";
export default Ember.ArrayController.extend({
model : function(){
return this.store.all('questions') ;
}
});
Run Code Online (Sandbox Code Playgroud)
所以预计这将像以前一样(至少我预期它),但这并没有显示任何记录.那么如果我在路线或控制器中定义模型有什么区别?什么应该是首选?