我的视图中有一个使用 Backbone.js 呈现的跨度
我想在渲染后立即获取它的 HTML
就像是 :$(span).html()
我怎样才能做到这一点?
我的视图中有一个使用 Backbone.js 呈现的跨度
我想在渲染后立即获取它的 HTML
就像是 :$(span).html()
我怎样才能做到这一点?
这个问题让我有点困惑,因为 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');
}
});
但实际上这甚至没有必要。
不确定MutationObserver是否有帮助,但绝对值得一试:-)