在CompositeView - Marionette中传递时ItemView的DOM位置

时间:2015-10-15 06:20:06

标签: javascript user-interface dom marionette

我有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

2 个答案:

答案 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);