// change函数 ChangeView = BI.inherit(BI.View, { _defaultConfig: function () { return BI.extend(ChangeView.superclass._defaultConfig.apply(this, arguments), { baseCls: "bi-change" }); }, _init: function () { ChangeView.superclass._init.apply(this, arguments); }, change: function (changed) { if(changed.child) { this._showModelData(); } if(changed.superiors) { this._showModelData(); } }, _showModelData: function () { this.outerText.setText("父级Model层数据: " + JSON.stringify(this.model.toJSON())); }, _createOuter: function () { this.outerText = BI.createWidget({ type: "bi.label", cls: "outer-text", whiteSpace: "normal" }); return BI.createWidget({ type: "bi.border", items: { north: { el: this.outerText, height: 50 }, center: this._createInner() } }); }, _createInner: function () { var innerPane = BI.createWidget({ type: "bi.absolute", cls: "inner" }); this.addSubVessel("innerPane", innerPane, { defaultShowName: "inner" }); return innerPane; }, render: function (vessel) { BI.createWidget({ type: "bi.center", element: vessel, items: [this._createOuter()], hgap: 100, vgap: 100 }); this._showModelData(); }, refresh: function () { this.skipTo("inner", "innerPane", "superiors"); } }); ChangeModel = BI.inherit(BI.Model, { _defaultConfig: function () { return BI.extend(ChangeModel.superclass._defaultConfig.apply(this, arguments), { superiors: { child: "default" }, child: "default" }); }, _init: function () { ChangeModel.superclass._init.apply(this, arguments); }, change: function (changed) { if(changed.superiors) { this.set("child", changed.superiors.child); } } }); // ChangeView 的子级 ChangeInnerView = BI.inherit(BI.View, { _init: function () { ChangeInnerView.superclass._init.apply(this, arguments); }, change: function (changed) { if(changed.child) { this._showModelData(); } }, _createOuter: function () { var self = this; this.text = BI.createWidget({ type: "bi.label", height: 26 }); this.buttons = BI.createWidget({ type: "bi.button_group", items: BI.createItems(this.model.get("items"), { type: "bi.text_button", height: 30, textAlign: "center", hgap: 20 }) }); this.buttons.on(BI.ButtonGroup.EVENT_CHANGE, function () { self.model.set("child", this.getValue()[0]); }); return BI.createWidget({ type: "bi.vertical", vgap: 20, items: [{ type: "bi.center", items: [this.buttons], height: 30 }, this.text] }); }, _showModelData: function () { this.text.setText("子级Model层数据: " + JSON.stringify(this.model.toJSON())); }, render: function (vessel) { BI.createWidget({ type: "bi.center", element: vessel, items: [this._createOuter()] }); this._showModelData(); } }); ChangeInnerModel = BI.inherit(BI.Model, { _defaultConfig: function () { return BI.extend(ChangeInnerModel.superclass._defaultConfig.apply(this, arguments), { }); }, _static: function () { return { items: [{ text: "Type-1", value: "First", cls: "type-first mvc-button" }, { text: "Type-2", value: "Second", cls: "type-second mvc-button" }, { text: "Type-3", value: "third", cls: "type-third mvc-button" }] }; }, _init: function () { ChangeInnerModel.superclass._init.apply(this, arguments); } }); Demo.Func = BI.inherit(BI.Widget, { render: function () { var view = BI.View.createView("/change", {}, { element: this }); view.populate(); }, mounted: function () { } }); BI.shortcut("demo.change", Demo.Func);