小编zap*_*per的帖子

控制器和路由中的模型挂钩有什么区别?

我尝试了一个简单的应用程序,但我很困惑,因为什么时候在控制器中使用模型钩子,什么时候去路由模型钩子.以此为例(使用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)

所以预计这将像以前一样(至少我预期它),但这并没有显示任何记录.那么如果我在路线或控制器中定义模型有什么区别?什么应该是首选?

ember.js ember-data ember-cli

3
推荐指数
1
解决办法
244
查看次数

标签 统计

ember-cli ×1

ember-data ×1

ember.js ×1