gpt4 book ai didi

ember.js - Controller 和路由中的模型 Hook 有什么区别?

转载 作者:行者123 更新时间:2023-12-01 09:56:42 26 4
gpt4 key购买 nike

我尝试了一个简单的应用程序,但我对何时在 Controller 中使用模型 Hook 以及何时在路由中使用模型 Hook 感到困惑。以此为例(使用 EmberCLI):

模板 (templates/discovery.hbs)

{{#each model}}
<tr>
<td>
Q: {{ques}}
</td>
</tr>
{{/each}}

所以我可以通过以下两种方式定义模型

**第一种方法(routes/discovery.js)**

import Ember from "ember";

export default Ember.Route.extend({
model : function(){
return this.store.all('questions') ;
}
});

这正如预期的那样工作,所有类型问题的记录都被传递并显示在 discovery.hbs 模板中。

第二种方式(controllers/discovery.js)

import Ember from "ember";

export default Ember.ArrayController.extend({
model : function(){
return this.store.all('questions') ;

}
});

所以这预计会以与之前相同的方式工作(至少我希望如此),但它不会显示任何记录。那么如果我在路由或 Controller 中定义模型有什么区别呢?应该首选什么?

最佳答案

正如@blessenm 所说,model 钩子(Hook)仅用于路由。这是 Route 对象的主要职责之一:它检索并设置要在该 route 显示的数据。

Controller 的 model 属性并不是一个钩子(Hook):它是一个属性。它不是只读的原因是路由应该设置和修改它。

关于ember.js - Controller 和路由中的模型 Hook 有什么区别?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25159669/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com