1

backbone.marionette を使用する SPA で、他の CompositeView のタブ内に CompositeView をレンダリングしようとしています。

コントロールを正常にレンダリングしましたが、イベントが DOM に登録されていません

ここに私のコードサンプルがあります:

MainView: view.js (サブビューを受け取り、タブ内にレンダリングする)

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