1

在我使用backbone.marionette 的SPA 中,我试图在另一个CompositeView 的选项卡内呈现一个CompositeView。

我已成功呈现控件,但事件未在 DOM 中注册

这是我的代码示例:

MainView:view.js(接收 subView 并将其呈现在选项卡中)

define(["marionette", "backbone", "kendo", "../SubView/view"],
    function (Marionette, Backbone, kendo, subView) {
        var View = Marionette.CompositeView.extend({
            template: "MainView/template.t",            
            onRender: function () {

        var tabStrip = this.$("#tabStrip").kendoTabStrip().data("kendoTabStrip");                
                    tabStrip.append({
                        text: "Sub View",
                        content: new subView().render().$el.html()
                    });

            },
            onShow: function () {
                //Set Default Active Tab
                var tabStrip = $('#tabStrip').data().kendoTabStrip;
                tabStrip.select(0);
            },
        });

        return View;

主视图:template.t

<div id="tabStrip"></div>

子视图:view.js

define(["marionette", "backbone", "kendo"],
    function (Marionette, Backbone, kendo) {
        var View = Marionette.CompositeView.extend({
            template: "SubView/template.t",            
            },            
            onRender: function () {
                var data = [{ Description: "Test 1", ID: 1 }, { Description: "Test 2", ID: 2 }]
                this.$("#ddlTest").kendoDropDownList({
                    dataSource: data,
                    dataTextField: "Description",
                    dataValueField: "ID",
                });                
                return this;
            },
        });

        return View;
    });

子视图:template.t

<input id="ddlTest"/>

任何帮助将不胜感激。

4

0 回答 0