我的视图中有一个使用Backbone.js
渲染的范围我想在呈现
时立即获取HTML类似于:$(span).html()
我该怎么做?
答案 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是否有帮助,但绝对值得一试: - )