GVKun编程网logo

URL哈希爆炸(#!/)前缀而不是Angular 1.6中的简单哈希(#/)(url_hash)

25

本文将介绍URL哈希爆炸的详细情况,特别是关于#!/前缀而不是Angular1.6中的简单哈希的相关信息。我们将通过案例分析、数据研究等多种方式,帮助您更全面地了解这个主题,同时也将涉及一些关于Ang

本文将介绍URL哈希爆炸的详细情况,特别是关于#!/前缀而不是Angular 1.6中的简单哈希的相关信息。我们将通过案例分析、数据研究等多种方式,帮助您更全面地了解这个主题,同时也将涉及一些关于Angular 2从网址中删除哈希(#)、Angular 2单击ngClass,如何仅应用于SELF而不是ALLF中的所有元素、angular – 如何使用UI-Router阻止持久性URL锚链接哈希值?、Angular 下载属性重定向到 url 而不是下载的知识。

本文目录一览:

URL哈希爆炸(#!/)前缀而不是Angular 1.6中的简单哈希(#/)(url_hash)

URL哈希爆炸(#!/)前缀而不是Angular 1.6中的简单哈希(#/)(url_hash)

我上AngularJS网址项目已经从改变localhost:3000/admin#/localhost:3000/admin#!/自上次我在我的项目工作…

在网络上找不到任何东西,有人知道这是什么吗?

答案1

小编典典

它是AngularJS 1.6的新增功能,它添加了新的哈希前缀。

由于aa077e8,用于$location哈希爆炸URL的默认哈希前缀已从空字符串('''')更改为爆炸(''!'')。如果您的应用程序不使用HTML5模式或正在不支持HTML5模式的浏览器上运行,并且您尚未指定自己的哈希前缀,则客户端URL现在将包含一个!前缀。例如,mydomain.com/#/a/b/cURL将变为
mydomain.com/#!/a/b/c


如果要删除此前缀,请将以下代码添加到配置中:

appModule.config([''$locationProvider'', function($locationProvider) {  $locationProvider.hashPrefix('''');}]);

Angular 2从网址中删除哈希(#)

Angular 2从网址中删除哈希(#)

我正在尝试从Angular 2中的网址中删除#号,但找不到如何在不产生任何问题的情况下删除它的任何好的解释。

我记得在AngularJS 1上添加起来比较容易 $locationProvider.html5Mode(true);

如果您能告诉我这是否是一种好的做法(删除#)或可能会影响应用程序的SEO(或对其进行改进),我也将不胜感激。

PS:我正在将Angular 2与打字稿一起使用

答案1

小编典典

正如@Volodymyr Bilyachat指出的那样,这PathLocationStrategy是Angular2中的默认位置策略,并且如果#url中存在,则一定是在某处被覆盖了。

在模块提供程序旁边,检查模块导入,也可以通过提供{ useHash: true }作为第二个参数来覆盖它RouterModule.forRoot

imports: [    ...    RouterModule.forRoot(routes, { useHash: true })  // remove second argument]

另请注意,在使用时,PathLocationStrategy您需要配置Web服务器index.html以为所有请求的位置提供服务(应用程序的入口点)。

Angular 2单击ngClass,如何仅应用于SELF而不是ALLF中的所有元素

Angular 2单击ngClass,如何仅应用于SELF而不是ALLF中的所有元素

在Angular 1.x中
以下代码可以正常工作,因为我想在ng-repeat中单击并翻转一张卡片
<divng-repeat="let card of cards">
<divng-ng-click="isflipped = !isflipped">
</div>
</div>

然而在Angular 2中
单击时,它会翻转ngFor循环中的每个“卡”…如何仅将ngClass条件绑定到元素本身?

<div*ngFor="let card of cards">
<div[ngClass]="{'flipped': isflipped }" (click)="isflipped = !isflipped;">
</div>
</div>
将其更改为:
<div*ngFor="let card of cards">
    <div[ngClass]="{'flipped': card.isflipped }" (click)="card.isflipped = !card.isflipped;">
    </div>
</div>

angular – 如何使用UI-Router阻止持久性URL锚链接哈希值?

angular – 如何使用UI-Router阻止持久性URL锚链接哈希值?

我在无哈希模式下使用Angular2和 UI-Router 2用于在菜单中使用一些锚链接的简单应用程序.例如:

> https://example.com/blah/blech
> https://example.com/blah/blech#specifications
> https://example.com/blah/derp

如果我从URL中带有散列的路由转到没有散列的路由,则散列仍然存在.例如,通过菜单从/ blah / blech#specifications到/ blah / derp会产生/ blah / derp#specifications的浏览器地址.显然这是不正确的,实际上有些限制,例如当我返回/ blah / blech并且哈希值仍然存在时,将窗口发送到该锚点位置.

另一个副作用是以某种不可预测的方式刷新页面.从/ blah / derp转到/ blah / blech#specifications会导致整页刷新.

设置相当标准:

export let derpState: Ng2StateDeclaration = {
    name: 'derpState',component: DerpComponent,url: '/derp'
}

如何将哈希链接与UI-Router 2结合使用,效果良好? (或者,我如何以其他方式使用带有UI-Router的锚链接?)

解决方法

你使用哪个版本的角2?请升级它.不需要名字和所有.

import { ModuleWithProviders }  from '@angular/core';
import { Routes,RouterModule } from '@angular/router';

import { DerpComponent }    from './derp.component';

const derp: Routes = [
{ path: 'derp',component: DerpComponent }
];
export const derpState: ModuleWithProviders = RouterModule.forChild(derp);

试试这个.希望这会帮助你.

Angular 下载属性重定向到 url 而不是下载

Angular 下载属性重定向到 url 而不是下载

如何解决Angular 下载属性重定向到 url 而不是下载?

我正在尝试使用我的 href 标签从链接下载,但它会将我带到 URL 而不是下载实际文件。这是我的 ts:

      public getCiCdInputFromUser(value: any) {

    this.userService.getCicdFile(value).subscribe((test => {

      this.specificationUrl = test;
      console.log(test);
    }));

      }

这是我的 html:

        <a
    mat-raised-button
    color="accent"
    [href]="specificationUrl"
    download="specificationUrl"
  >
    Download CICD File
  </a>

我的 service.ts:

      getCicdFile = (language: string): Observable<Cicdlanguage> => {
    const headers = new HttpHeaders().set(''Content-Type'',''text/plain; charset=utf-8'');
    return this.http
      .post<Cicdlanguage>(`${environment.apiUrl}/cicd`,{language},{ headers,responseType: ''text'' as ''json''  })
      .pipe(
        catchError(err => {
          console.log(''error'',err);
          return EMPTY;
        })
      );
  }

和我的 CicdLanguage:

    export class Cicdlanguage {
  public language: string;
}

我将我的规范 Url 设置为假设要下载的链接,但它会在新选项卡中打开文件

我尝试下载的文件是 Yaml 文件

解决方法

暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!

如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。

小编邮箱:dio#foxmail.com (将#修改为@)

关于URL哈希爆炸#!/前缀而不是Angular 1.6中的简单哈希的问题就给大家分享到这里,感谢你花时间阅读本站内容,更多关于Angular 2从网址中删除哈希(#)、Angular 2单击ngClass,如何仅应用于SELF而不是ALLF中的所有元素、angular – 如何使用UI-Router阻止持久性URL锚链接哈希值?、Angular 下载属性重定向到 url 而不是下载等相关知识的信息别忘了在本站进行查找喔。

本文标签: