与ember重定向和/或renderTemplate非常混淆

时间:2013-04-14 01:17:47

标签: ember.js

我是新手,我真的在努力完成应该是一项相当简单的任务。

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

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

显然,我的选择是重定向到'references / 1'网址(不太理想),或显示'参考'模板。

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

我使用常规路由,我在其中加载引用,它显示链接,如果我单击链接,或直接使用'references / 2'网址加载页面,它会显示正确的内容。

如果我使用

重定向
App.ReferencesRoute = Ember.Route.extend({
    model: function(){
        return App.References.find();
    },
    redirect: function(){
        this.transitionTo('reference',App.References.find(1));
    }

});

我正确地重定向了url,但是我没有得到引用的链接。我确实加载了'reference'模板,但模型没有通过。我尝试过使用this.modelFor('references').get('firstObject'),但这也没有返回任何内容,这就是我使用find(1)的原因。

如果我尝试使用渲染模板和控制器这样做

App.ReferencesRoute = Ember.Route.extend({
    model: function(){
        return App.References.find();
    },
    renderTemplate: function(){
        this.render();
        this.render('reference',{into: 'references',controller:'reference'});

    }
});

App.ReferenceController = Ember.ObjectController.extend({
    letter: 'test letter' 
});

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

1)我无法弄清楚如何将Reference控制器传递给第一个模型,以便它实际返回的内容就像用户位于'/ references / 1'url

一样

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

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

我是否完全错了?我有什么大不了的东西吗?

1 个答案:

答案 0 :(得分: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);
   }
});
相关问题