【问题标题】:Very confused with ember redirect and/or renderTemplate与 ember 重定向和/或 renderTemplate 非常混淆
【发布时间】:2013-04-14 01:17:46
【问题描述】:

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

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

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

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

我会为此构建一个 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”网址中的结果相同

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

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

我这样做完全错了吗?我有什么大不了的吗?

【问题讨论】:

    标签: ember.js


    【解决方案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);
       }
    });
    

    【讨论】:

    • 这只是让我参与其中,但没有其他人回应。我想我将不得不将视图放在单独的插座中并在 js 中引用它们。我更喜欢嵌套。
    • 根据 Ember 文档,重定向在内部传递给模型,因此您不必执行 this.controllerFor() 行。但是,我无法让它工作
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-04-19
    • 2014-08-23
    • 2019-10-17
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多