ng-alain 复用标签相关设置

排除复用

import { ReuseTabMatchMode, ReuseTabService } from '@delon/abc';

export class StartupService {
    constructor(
        private reuseTabService: ReuseTabService,
        private inj: Injector) {
    }

    load(): Promise<any> {
        // only works with promises
        const pLoadData = new Promise(async (resolve, reject) => {
            // reuse-tab  是否重用页面,把这个页面排除了,所以只要跳转到别的页面 目标tab就会消失
            this.reuseTabService.mode = ReuseTabMatchMode.URL;
            const excludes = new Array<RegExp>();
            excludes.push(new RegExp('/target-route'));
            this.reuseTabService.excludes = excludes;
            resolve({});
        });
        return pLoadData;
    }
}

参考资料

feat(abc: reuse-tab): new reuse-tab component plans!

跳转关闭tab

this.router.navigateByUrl(`/target-route`,{
    skipLocationChange:true
});

skipLocationChange:Navigates without pushing a new state into history.
ng-alain的tab根据路由的history生成=>tab没有关闭=生成了history=>要关闭tab,需要不保留history
关键词:angular 4 route navigate without pushing a new state into history.

参考资料

NavigationExtras

原文地址:https://www.cnblogs.com/Lulus/p/9483030.html