3

我是 ember 的新手,我真的很想知道如何完成应该是一个相当简单的任务。

我正在尝试将我的简历放入 ember 应用程序中。作为简历的一部分,我有一些参考资料。

当有人点击导航中的“参考”链接时,我希望它显示每个参考的链接,以及第一个参考,显示为链接的子项。

显然,我在这里的选择是重定向到“references/1”url(不是很理想),或者显示“reference”模板。

我会为此构建一个 JSFiddle,但 jsfiddle 似乎已损坏,因为我无法加载或查看已经存在的任何内容。

我有这个与常规路线一起工作的地方,我在其中加载引用,它显示链接,如果我点击一个链接,或者直接使用'references/2' url 加载页面,它会显示正确的内容。

如果我使用重定向

App.ReferencesRoute = Ember.Route.extend({
    模型:函数(){
        返回 App.References.find();
    },
    重定向:函数(){
        this.transitionTo('reference',App.References.find(1));
    }

});

我得到正确重定向的 url,但我没有得到引用的链接。我确实加载了“参考”模板,但模型没有通过。我试过使用this.modelFor('references').get('firstObject'),但这也没有返回任何东西,这就是我使用find(1).

如果我尝试像这样使用渲染模板和控制器执行此操作

App.ReferencesRoute = Ember.Route.extend({
    模型:函数(){
        返回 App.References.find();
    },
    渲染模板:函数(){
        this.render();
        this.render('reference',{into: 'references',controller:'reference'});

    }
});

App.ReferenceController = Ember.ObjectController.extend({
    信:'测试信'
});

我收到了链接和“测试信”消息,但遇到了其他一些问题。

1) 我不知道如何将 Reference 控制器传递给第一个模型,以便它实际上返回与用户在'/references/1' url 相同的结果

2)如果我单击链接,则不显示所选字母,这意味着如果我使用控制器,链接将不起作用。

3)我希望第一个链接处于活动状态,因为那是已经显示的字母,但与其他问题相比,这是一个小细节。

我会完全错了吗?我有什么大不了的吗?

4

1 回答 1

1

为了通过重定向传递模型,我使用这样的东西:

App.ReferencesIndexRoute = Ember.Route.extend({
   model    : function(){
       return App.References.find();
   },
   redirect : function(){
      var model = this.controllerFor('references').get('model');
      this.transitionTo('reference', model);
   }
});
于 2013-04-14T04:39:14.667 回答