可用性在Marionette.View UI元素的(Availability of UI eleme

2019-08-17 09:58发布

我只是想了解背后Backbone.Marionette的关于UI元素视图的决定。 当现有的DOM元素,像这样的实例化Marionette.View:

view = new Marionette.ItemView({
     el: "#element",
     ui : {
         whatever : "#whatever"
     }
});

我能够访问view.$el ,里面的jQuery选择view.initialize ,到目前为止,一切顺利。 然而,当我尝试访问view.ui.whatever ,我只能访问到选择,即字符串“#whatever”而不是实际的$("#whatever") jQuery选择。

这样做的原因是因为Marionette.View.bindUIElements()只要求render和之前没有initialize

我想知道,如果你认为这种行为是逻辑,为什么?

我只在视图中的连接到现有的情况下,询问el ,如果视图用模板创建的,我不明白为什么绑定的render()

Answer 1:

附接的视图到现有元件是例外。 普通视图的生命周期需要调用render ,并没有这样做,就什么也没有了绑定到UI元素。

只需拨打this.bindUIElements()在你的initialize方法时,你需要一个视图附加到现有元素。



Answer 2:

当我与木偶的工作,我把有访问昂秀法里面的UI元素的代码。 此事件的DOM之后触发准备和要素准备进行操作。 在此方法中,您ui.whatever现在将指向一个元素,而不是一个字符串。



Answer 3:

我想,因为你要访问jQuery的元素与你有这个问题

this.ui.whatever

因为“这”已经是一个视图实例。 请参阅: http://marionettejs.com/docs/v2.4.4/marionette.itemview.html#organizing-ui-elements



文章来源: Availability of UI elements in Marionette.View