我正在研究一个Backbone.View
应该将集合呈现为可滚动列表的方法。
作为初始渲染的一部分,我需要访问一些布局属性(例如clientWidth
),这些属性仅在视图被渲染后才可用。
我的问题是,我怎么知道视图何时被添加到 DOM 中?
使用 aBackbone.View
通常有两种方法可以将视图附加到 DOM:
创建视图>渲染它>附加它:
view = new MyList().render() $('#dummy').append(view.$el)
创建视图并就地渲染:
new MyList({el: '#dummy'}).render()
注意:我知道 (1) 和 (2) 并不完全等价,这不是重点。
让我们考虑一下我的列表是这样定义的:
class MyList extends Backbone.View
render: ->
@$el->html( ... )
@
layout: ->
max = $el.scrollWidth - $el.clientWidth
# ... disable / enable scrolling arrows based on max ...
在 MyList 附加到 DOM 之后,如何确保调用 layout()?