2013-11-15 40 views
0

我正在处理我的第一个Ember.js项目,我必须处理当前的问题:如何在ember.js中自动渲染一些默认内容?

我有一个“新闻”页面,它有更多的内容。在余烬中,有两条路线 - 让我们称它为整个页面的“abouts”,并且为页面上的每个内容“关于”。基本上,(当前)有7个图片/带有标题的项目等。当您点击其中的每一个时,单击的图片/印刷机会被渲染并打开。这一切都完美。

我想要做的是 - 当“abouts”页面打开时,我想自动渲染最新的内容(现在,只有当您点击图像时才会呈现)。一个已知解决方案这样做是为了在{{linkTo}}(连接到菜单项)在我看来,通过一个额外的参数(ID),就像这样:

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

这工作,但它不是因为id是硬编码的,因此是动态的。我想要的是动态地将“约”项目的长度减去一(在我的情况7中,但它会增长)。有没有什么办法可以获得“约”项目的长度?也许在ApplicationRoute或以某种方式?

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

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

enter image description here

回答

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')); 
    } 
});