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"/>
どんな助けでも大歓迎です。