Ember.js Emberjs:如何在tweet上迭代并仅在与上次不同时显示日期?
我是新来的灰烬,所以请原谅,如果这个问题已经涵盖其他地方 下面是我试图获取的标记的简化版本:Ember.js Emberjs:如何在tweet上迭代并仅在与上次不同时显示日期?,ember.js,handlebars.js,Ember.js,Handlebars.js,我是新来的灰烬,所以请原谅,如果这个问题已经涵盖其他地方 下面是我试图获取的标记的简化版本: <h1>Date1</h1> <div>Tweet 1 on Date1</div> <div>Tweet 2 on Date1</div> <h1>Date2</h1> <div>Tweet 3 on Date2</div> <div>Tweet 4 on Date2&l
<h1>Date1</h1>
<div>Tweet 1 on Date1</div>
<div>Tweet 2 on Date1</div>
<h1>Date2</h1>
<div>Tweet 3 on Date2</div>
<div>Tweet 4 on Date2</div>
Date1
Date1上的推文1
Date1上的推特2
日期2
Date2上的推特3
Date2上的推特4
我来自django,所以我习惯了ifchanged
标签
得到这个的正确方法是什么?我查看了车把助手,但它们似乎是无状态的。你不能,车把太没有逻辑了,无法完成这样的任务。在将其交给模板之前,您需要将其整理好 这可能是解决问题的一种方法,假设您有一个ArrayController类型的TweetsController。然后,您可以创建一个将遍历数组的计算属性,并返回一个过滤版本
noRepeatedDates: function() {
var tweets = [];
var lastTweet = Ember.Object.create();
this.get('model').forEach(function(tweet) {
if(tweet.get('date') == lastTweet.get('date')) {
tweet.set('date', undefined);
} else {
lastTweet = tweet
}
tweets.pushObject(tweet);
});
return tweets;
}.property('@each')
我没有测试这段代码,通常目的是让您了解在使用把手时如何思考
但是有了它,您应该能够遍历模板中的NOREPEATEDDATE。希望我能帮上忙。这是一个有趣的方法。我真的希望有一种方法可以做到这一点,我不必把显示逻辑放在控制器中。作为替代,你可以创建一个视图,并做一些相同的事情。