guy 4 years ago
parent
commit
3ade3d03e0
  1. 49
      demo/app.js
  2. 16
      demo/js/center.js
  3. 12
      demo/js/main.store.js
  4. 2
      demo/js/north.js
  5. 24
      src/router/router2.js

49
demo/app.js

@ -9,34 +9,47 @@ BI.$(function () {
}); });
var tree = BI.Tree.transformToTreeFormat(Demo.CONFIG); var tree = BI.Tree.transformToTreeFormat(Demo.CONFIG);
var obj = { var routes = [{
routes: { path: '/',
"": "index" component: function(){
}, return Promise.resolve({
index: function () { type: "demo.face"
Demo.showIndex = "demo.face"; })
} }
}; }];
BI.Tree.traversal(tree, function (index, node) { BI.Tree.traversal(tree, function (index, node) {
if (!node.children || BI.isEmptyArray(node.children)) { if (!node.children || BI.isEmptyArray(node.children)) {
obj.routes[node.text] = node.text; routes.push({
obj[node.text] = function () { path: '/' + node.text,
Demo.showIndex = node.value; component: function(){
}; return Promise.resolve({
type: node.value
})
}
});
} }
}); });
var AppRouter = BI.inherit(BI.Router, obj); // var AppRouter = BI.inherit(BI.Router, obj);
new AppRouter; // new AppRouter;
BI.history.start(); // BI.history.start();
BI.createWidget({ BI.createWidget({
type: "demo.main", type: "bi.router",
ref: function (_ref) { ref: function (_ref) {
console.log(_ref); BI.router = _ref._router;
ref = _ref;
}, },
element: "#wrapper" element: "#wrapper",
routes: routes,
render: function () {
return {
type: "demo.main",
ref: function (_ref) {
console.log(_ref);
ref = _ref;
}
}
}
}); });
}); });

16
demo/js/center.js

@ -5,22 +5,12 @@ Demo.Center = BI.inherit(BI.Widget, {
render: function () { render: function () {
var self = this; var self = this;
return { return {
type: "bi.tab", type: "bi.router_view"
ref: function () { }
self.tab = this;
},
single: true,
showIndex: Demo.showIndex,
cardCreator: function (v) {
return BI.createWidget({
type: v
});
}
};
}, },
setValue: function (v) { setValue: function (v) {
this.tab.setSelect(v); // this.tab.setSelect(v);
} }
}); });
BI.shortcut("demo.center", Demo.Center); BI.shortcut("demo.center", Demo.Center);

12
demo/js/main.store.js

@ -4,12 +4,6 @@
}, },
state: function () {
return {
activeCard: Demo.showIndex
};
},
computed: {}, computed: {},
watch: {}, watch: {},
@ -51,12 +45,14 @@
this.model.activeCard = v; this.model.activeCard = v;
var matched = BI.some(Demo.CONFIG, function (index, item) { var matched = BI.some(Demo.CONFIG, function (index, item) {
if (item.value === v) { if (item.value === v) {
BI.history.navigate(item.text, {trigger: true}); BI.router.push(item.text);
// BI.history.navigate(item.text, {trigger: true});
return true; return true;
} }
}); });
if (!matched) { if (!matched) {
BI.history.navigate("", {trigger: true}); BI.router.push("/");
// BI.history.navigate("", {trigger: true});
} }
} }
} }

2
demo/js/north.js

@ -13,7 +13,7 @@ Demo.North = BI.inherit(BI.Widget, {
listeners: [{ listeners: [{
eventName: BI.Button.EVENT_CHANGE, eventName: BI.Button.EVENT_CHANGE,
action: function () { action: function () {
self.fireEvent(Demo.North.EVENT_VALUE_CHANGE, "demo.face"); self.fireEvent(Demo.North.EVENT_VALUE_CHANGE, "");
} }
}], }],
cls: "logo", cls: "logo",

24
src/router/router2.js

@ -3131,7 +3131,6 @@
}); });
this._router.afterEach(function () { this._router.afterEach(function () {
cbs.forEach(function (cb) {cb();}); cbs.forEach(function (cb) {cb();});
cbs = [];
}); });
this._router.init(this); this._router.init(this);
} }
@ -3139,11 +3138,28 @@
BI.shortcut("bi.router", RouterWidget); BI.shortcut("bi.router", RouterWidget);
var RouterView = BI.inherit(BI.Widget, { var RouterView = BI.inherit(BI.Widget, {
beforeInit: function (callback) { created: function () {
cbs.push(callback); var self = this;
cbs.push(function () {
self.tab.setSelect($router.history.current.matched[0].path || "/");
});
}, },
render: function () { render: function () {
return $router.history.current.matched[0].components.default; var self = this;
return {
type: "bi.tab",
ref: function (_ref) {
self.tab = _ref;
},
single: false, // 是不是单页面
logic: {
dynamic: false
},
showIndex: false,
cardCreator: function (v) {
return $router.history.current.matched[0].components.default;
}
};
} }
}); });
BI.shortcut("bi.router_view", RouterView); BI.shortcut("bi.router_view", RouterView);

Loading…
Cancel
Save