- c - 在位数组中找到第一个零
- linux - Unix 显示有关匹配两种模式之一的文件的信息
- 正则表达式替换多个文件
- linux - 隐藏来自 xtrace 的命令
我有一个 Angular 应用程序使用路由和 HashLocationStrategy,我需要在主 html 文件中设置不同的值并在路由中设置不同的值。
我试过这个解决方案:
@NgModule({
imports: [
BrowserModule,
FormsModule,
HttpModule,
MyRouting // with useHash set to true
],
declarations: [
AppComponent,
],
providers: [
{ provide: APP_BASE_HREF, useValue: '/prefix' }
],
bootstrap: [AppComponent]
})
export class AppModule { }
几乎可以正常工作,但值 '/prefix' 是在散列之后插入的,如下所示:
http://myapp.com/#/prefix/home
而我想要:
http://myapp.com/prefix/#/home
为清楚起见,我的基本标签是:
<base href="/">
最佳答案
我遇到了同样的问题并用我自己的 HashLocationStrategy 子类修复了它
import { Injectable } from '@angular/core';
import { HashLocationStrategy } from '@angular/common';
@Injectable()
export class CustomLocationStrategy extends HashLocationStrategy {
prepareExternalUrl(internal: string): string {
return this.getBaseHref() + '#' + internal;
}
}
然后在我的模块中使用它
import { NgModule } from '@angular/core';
import { RouterModule, Routes } from '@angular/router';
import { LocationStrategy } from '@angular/common';
import { APP_BASE_HREF } from '@angular/common';
import { CustomLocationStrategy } from './app.common';
const appRoutes: Routes = [...];
@NgModule({
imports: [
RouterModule.forRoot(appRoutes, { useHash: true })
],
providers: [
{ provide: APP_BASE_HREF, useValue: window.location.pathname },
{ provide: LocationStrategy, useClass: CustomLocationStrategy },
]
})
export class AppModule {
}
关于Angular2 - APP_BASE_HREF 与 HashLocationStrategy,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40397273/
如何以编程方式获取 APP_BASE_HREF? 我的 app.module.ts 中有这个(APP_BASE='/'): { provide: APP_BASE_HREF, useV
我需要做的是设置 动态标记位于 index.html 中的或者设置 APP_BASE_HREF动态地在 app.module.ts 中 我不确定如何在 index.html 上设置任何内容因为它看起来
在我的 Angular 应用程序中,我想使用环境来设置 自动。 我的 app.module.ts 中有以下相关行: ... import { APP_BASE_HREF } from "@angula
我有一个 Angular 应用程序使用路由和 HashLocationStrategy,我需要在主 html 文件中设置不同的值并在路由中设置不同的值。 我试过这个解决方案: @NgModule({
我正在使用 typescript 2.0.3 编写一个 angular 2.1.0 项目。 我使用以下代码创建了一个 app-config 服务: import { Injectable } from
我开始在我的 Angular 6 应用程序中使用测试。我遇到了一个错误,但我不确定如何解决。 正如您在下面看到的,我的测试提示未设置基本 href,但在我的 index.html 中我确实有 Err
我正在开发第一个 Angular 2 应用程序并具有以下代码 AppModule.ts 代码 import { NgModule } from '@angular/core'; import { Br
我正在开发一个 Angular 应用程序,我面临着设置 HTML 基本 href 值和/或 APP_BASE_HREF 值的问题。 它们之间有什么区别和联系? 最佳答案 一般来说,你只需要设置 .
我正在构建一个 Chrome 浏览器操作扩展程序。 我正在尝试将 Angular 2 应用程序加载到 Chrome 的弹出窗口中。 我在使用 Angular 1.5 之前已经这样做过,但尝试使用 An
我尝试使用来自异步 rest 调用的值在“CoreModule”中设置 APP_BASE_HREF。我看不出这是怎么做到的,因为 provide 方法需要返回一个字符串。 例如: @NgModule(
我是一名优秀的程序员,十分优秀!