gpt4 book ai didi

Angular 2 路由器混合应用程序 : url reverts back after navigate

转载 作者:行者123 更新时间:2023-12-05 01:41:53 26 4
gpt4 key购买 nike

每次路由更改都会呈现正确的组件,但路径有问题。
例如,从/items 导航到/add-item 更改和 url 一秒钟,然后恢复它。
它发生在每一页上,无论从哪里开始,到哪里去。

导航

<a routerLink="/add-item">Add item</a>

主应用程序.routes.ts

export const appRoutes: Routes = [{
path: 'brokers',
pathMatch: 'full',
redirectTo: '/'
},
{
path: 'sellers',
pathMatch: 'full',
redirectTo: '/'
},
{
path: 'buyers',
pathMatch: 'full',
redirectTo: '/'
},
{
data: { name: 'pageNotFound' },
path: '**',
redirectTo: '/404'
}];

home.routes.ts

export const homeRoutes: Routes = [{
component: HomePageComponent,
data: { name: 'homePage' },
path: ''
}

页面未找到.routes.ts

export const pageNotFoundRoutes: Routes = [{
component: PageNotFoundComponent,
data: { name: 'pageNotFound' },
path: '404'
}]

添加项目.routes.ts

export const addItemRoutes: Routes = [{
component: AddItemComponent,
data: { name: 'addItem' },
path: 'add-item'
}]

items.routes.ts

export const itemsRoutes: Routes = [{
component: ItemsComponent,
data: { name: 'items' },
path: 'items'
}];

所有模块的路由都像这样在导入部分声明

RouterModule.forChild(addItemRoutes)

主要路线

RouterModule.forRoot(appRoutes, { enableTracing: true })

路由器跟踪没有给我任何错误,并在 NavigationEnd 事件上纠正了 urlAfterRedirects。

最佳答案

只给遇到同样问题的人。
如果你有混合 AngularJS 到 Angular 应用程序,你必须保留旧的 $locationProvider 设置,如 $locationProvider.html5Mode({ enabled: true, requireBase: false });
否则你的新 Angular 路由会遇到这个问题。

或者你可以用这样的 hack 关闭 Angular.js 路由操作

$provide.decorator('$browser', ['$delegate', ($delegate) => {

$delegate.onUrlChange = () => {};
$delegate.url = () => {

return '';

};

return $delegate;

}]);

关于 Angular 2 路由器混合应用程序 : url reverts back after navigate,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53012247/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com