如何在ember.js中自动呈现一些默认内容?

时间:2013-11-15 13:43:21

标签: javascript ember.js

我正在研究我的第一个Ember.js项目,我将处理当前的问题:

我有一个“按”页面,其中包含更多内容。在ember中,有两条路线 - 让我们称之为整个页面的“abouts”和页面上每个内容的“about”。基本上,有(当前)7个图片/项目与标题等。当您点击其中每一个,点击图片/按下得到渲染和打开。这一切都很完美。

我想要做的是 - 当“abouts”页面打开时,我想自动呈现最新内容(现在,在您点击图像之前不会呈现任何内容)。一个已知的解决方案是在我的视图中在{{linkTo}}(连接到菜单项)中传递一个额外的参数(id),如下所示:

{{#linkTo 'about' 6 title='Press'}}Press{{/linkTo}}

这样可行,但它不是动态的,因为id是硬编码的。我想要的是动态传递“约”项减去一个的长度(在我的情况下为7,但它会增长)。有没有办法获得“关于”项目的长度?也许在ApplicationRoute或某种程度上?

或者您对如何解决这个问题有任何其他想法?简单来说,如何默认渲染一些内容?

我还附上两张图片,可能更清楚我想做什么。 enter image description here

enter image description here

1 个答案:

答案 0 :(得分:0)

我解决了这个问题。这是解决方案。

使用{{#linkTo}},我已经生成了根页面的链接,如下所示:

{{#linkTo 'abouts' title='Press'}}Press{{/linkTo}}

在AboutsRou​​te中,我添加了立即执行的重定向。它看起来像这样。

App.AboutsRoute = Ember.Route.extend({
    model: function() {
        return this.store.findAll('about');
    },
    afterModel: function(abouts, transition) {
        this.transitionTo('about', abouts.get('length'));
    }
});