Browse Source

KERNEL-8279 refactor:router-view根据匹配到的路径去操作tab

es6
Guyi 3 years ago
parent
commit
29e259f175
  1. 45
      demo/app.js
  2. 13
      dist/router.js

45
demo/app.js

@ -23,7 +23,50 @@ BI.$(function () {
return Promise.resolve({
type: "demo.router"
});
}
},
}, {
name: "user",
path: "/user/:name",
component: function () {
return Promise.resolve({
type: "bi.vtape",
items: [{
type: "bi.label",
text: "user",
height: 50
}, {
type: "bi.router_view",
deps: 1
}]
});
},
children: [{
path: '',
component: function () {
return Promise.resolve({
type: "bi.label",
text: 'home'
})
}
}, {
name: 'dashboard',
path: 'dashboard',
component: function () {
return Promise.resolve({
type: "bi.label",
text: 'dashboard'
})
}
}, {
name: 'tables',
path: 'tables/:id',
component: function () {
return Promise.resolve({
type: "bi.label",
text: 'tables'
})
}
}]
}];
// BI.Tree.traversal(tree, function (index, node) {

13
dist/router.js vendored

@ -3152,7 +3152,16 @@
created: function () {
var self = this, o = this.options;
cbs.push(this._callbackListener = function () {
self.tab.setSelect($router.history.current.fullPath || "/");
var current = $router.history.current;
// 匹配的路径名(/component/:id)
var matchedPath = current.matched[o.deps] && current.matched[o.deps].path;
if (matchedPath) {
BI.each(current.params, function (key, value) {
// 把 :id 替换成具体的值(/component/demo.td)
matchedPath = matchedPath.replace(`:${key}`, value);
});
}
self.tab.setSelect(matchedPath || "/");
});
},
render: function () {
@ -3168,7 +3177,7 @@
},
showIndex: false,
cardCreator: function (v) {
return $router.history.current.matched[o.deps].components.default;
return $router.history.current.matched[o.deps].components.default;
}
};
},

Loading…
Cancel
Save