如何在呈现HTML元素时立即绑定它

时间:2013-01-23 22:13:51

标签: javascript jquery backbone.js

我的视图中有一个使用Backbone.js

渲染的范围

我想在呈现

时立即获取HTML

类似于:$(span).html()

我该怎么做?

2 个答案:

答案 0 :(得分:1)

这个问题让我感到困惑,因为Backbone.View实际上根本没有render方法(从技术上来说,它确实只有一个无操作);它是100%用户定义的。鉴于这一事实,在渲染之后检查......好吧,任何就像......好吧,在渲染后检查它。

换句话说,如果您的视图的渲染方法是:

var YourView= Backbone.View.extend({
    render: function() {
        this.$el.html(someHtml);
    }
});

然后您需要做的就是:

var YourView= Backbone.View.extend({
    render: function() {
        this.$el.html(someHtml);
        console.log(this.$el.html()); // check rendered HTML
    }
});

如果你想用事件中间化(如@aerodynamo建议的那样):

var YourView= Backbone.View.extend({
    events: {'customPostRender': 'postRender'},
    postRender: function() {
        console.log(this.$el.html()); // check rendered HTML
    },
    render: function() {
        this.$el.html(someHtml);
        this.trigger('customPostRender');
    }
});

但实际上甚至没有必要。

答案 1 :(得分:0)

不确定MutationObserver是否有帮助,但绝对值得一试: - )