我有ItemView
这样:
var Userview= Marionette.ItemView.extend({
template: "#user1",
el: "#imp1"
});
问题:这是否意味着ItemView:#user1
的模板在渲染时将进入DOM中的{say} div并使用id=imp1
?
(如果不是,那么我想我可以使用区域在DOM中的某个div中呈现Userview,所以很好!)
现在,在呈现CompositeView
的情况下,我使用Region1.show()
作为CompositeView
。在这种情况下,如何在DOM中的特定位置(例如带有id的div)呈现ItemView
的(childView)CompositeView
。
(正如我在Region1.show()
而不是CompositeView
上呼叫ItemView
,我不知道如何在DOM上的特定位置呈现ItemView
答案 0 :(得分:1)
因此,诀窍是在childViewContainer: "#some_id"
定义中定义CompositeView
。它将定义(childView)itemView
的位置。
此外,在itemView
内使用CompositeView
一词会导致错误,我们需要使用左childView: child_view_name
答案 1 :(得分:1)
如果ItemView是CompositeView子项,那么无法在 DOM 中的特定位置呈现它。 您只能在内部 CompositeView(childViewContainer)的特定位置进行渲染,而CompositeView将通过区域直接渲染到DOM中。
因此,如果要在DOM中的特定位置渲染ItemView,则应该只使用Region和ItemView,而不使用compositeView。
var myView = new MyView();
myRegion.show(myView);