1

你如何应用timeagoeasydate<time class="prettydate"><%= created_at %></time>"(输出类似这样的东西)Mon Jun 18 03:46:27 +0000 2012

我尝试了以下方法,但它不起作用,因为我使用 Backbone / Underscore 来呈现日期。

$(function() {
  $('time.prettydate').easydate();
});

这是我的看法:

( function ( views ){

    views.ResultView = Backbone.View.extend({
        tagName : 'li',
        template: _.template($('#resultItemTemplate').html()),

        initialize: function() {
            this.model.bind('change', this.render, this);
            this.model.bind('destroy', this.remove, this);
        },

        render : function () {
            //this.$el.html(this.template(this.model.toJSON()));
            var html = this.template(this.model.toJSON());
            this.$el.html($(html).timeago());
        }
    });

})( app.views );
4

1 回答 1

4

大概你在一个视图中有这样的东西:

render: function() {
    var html = _.template(...);
    this.$el.append(html);
    return this;
}

您需要做的就是html在附加插件时直接应用插件:

render: function() {
    var html = _.template(...);
    this.$el.append($(html).timeago());
    return this;
}

演示:http: //jsfiddle.net/ambiguous/Fk6xF/

如果你正在做这同样适用this.$el.html(...)

如果您需要在前一段时间应用的部分您的模板中,那么您必须找到它们并.timeago()单独应用。这样的事情应该可以解决问题:

render: function() {
    var html = _.template(...);
    this.$el.html(html);
    this.$el.find('.timeago').timeago(); // Assuming you're using class="timeago"
    return this;
}

演示:http: //jsfiddle.net/ambiguous/dHr6D/

于 2012-06-21T22:54:58.537 回答