Browse Source

Revert "无JIRA任务 路由问题"

This reverts commit b36b1a4690.
es6
Guyi 3 years ago
parent
commit
750c877be3
  1. 10
      src/router/router.js

10
src/router/router.js

@ -3156,9 +3156,7 @@
}, },
created: function () { created: function () {
var self = this, o = this.options; var self = this, o = this.options;
// 嵌套路由 + single 下父亲执行setSelect后会执行一遍push + _callbackListener,之后在cbs.forEach下会执行到刚push进去的_callbackListener导致执行两次,这里加一个nextTick让forEach走不到新push进去的方法。 cbs.push(this._callbackListener = function () {
BI.nextTick(function () {
cbs.push(self._callbackListener = function () {
var current = $router.history.current; var current = $router.history.current;
// 匹配的路径名(/component/:id) // 匹配的路径名(/component/:id)
var matchedPath = current.matched[o.deps] && current.matched[o.deps].path; var matchedPath = current.matched[o.deps] && current.matched[o.deps].path;
@ -3175,8 +3173,7 @@
} }
}); });
// "bi.router_view"是由"bi.tab"实现的,cardCreator是一个异步过程,在"bi.router_view"创建之前,cbs里不会有创建子组件的方法,在初始化路由时,没法直接渲染到子组件,所以这里手动加了一次调用 // "bi.router_view"是由"bi.tab"实现的,cardCreator是一个异步过程,在"bi.router_view"创建之前,cbs里不会有创建子组件的方法,在初始化路由时,没法直接渲染到子组件,所以这里手动加了一次调用
self._callbackListener(); this._callbackListener();
});
}, },
render: function () { render: function () {
var self = this, o = this.options; var self = this, o = this.options;
@ -3197,8 +3194,7 @@
}; };
}, },
destroyed: function () { destroyed: function () {
// BI.remove方法会把第二个参数当迭代器执行导致方法多执行一遍 BI.remove(cbs, this._callbackListener);
cbs.splice(cbs.indexOf(this._callbackListener), 1);
} }
}); });
BI.shortcut("bi.router_view", BI.RouterView); BI.shortcut("bi.router_view", BI.RouterView);

Loading…
Cancel
Save