大多数直接依赖 jQuery 的问题都可以使用onRendered回调来解决,如下所示:
Template.basic.onRendered(function() {
$(window).resize(function() {
console.log($(window).height());
});
});
从技术上讲,这是可行的,但是因为window
在渲染过程中永远不会被删除,所以这种技术有一个很大的缺点:每次渲染模板时都会添加一个新的调整大小处理程序。
因为window
始终可用,您可以改为使用created
和destroyed
回调来注册和注销处理程序:
Template.basic.onCreated(function() {
$(window).resize(function() {
console.log($(window).height());
});
});
Template.basic.onDestroyed(function() {
$(window).off('resize');
});
但是请注意,在onDestroyed中停止调整大小处理程序可能并不是您真正想要的。有关更多详细信息,请参阅此问题。
另请注意,在当前版本的流星中,您可以检查事件处理程序的数量,如下所示:
$._data($(window).get(0), "events").resize.length