Angular2路由-使用LocationStrategy添加主题标签不起作用?

RVP

我正在关注Angular2文档中的简单quickstart应用程序,并且正在使用spring后端来运行它。我的问题是,有角路由器将URL上的#标记删除了,所以现在应该example.com/#/dashboardexample.com/dashboard

我正在使用LocationStrategyStackOverflow上的许多帖子中指定方法。以下是我的简单示例:

File: main.ts

///<reference path="../node_modules/angular2/typings/browser.d.ts"/>

import {bootstrap} from 'angular2/platform/browser'
import {provide} from 'angular2/core';
import {LocationStrategy, HashLocationStrategy} from 'angular2/router';

import {TestComponent} from './simple/test.component'

bootstrap(
    TestComponent, 
    [
        provide(LocationStrategy, { useClass: HashLocationStrategy })
    ]
);

File: test.component.ts

import {Component} from 'angular2/core';
import {RouteConfig, ROUTER_DIRECTIVES, ROUTER_PROVIDERS } from 'angular2/router';

@Component({
    selector: 'test1',
    template: "<h1>This is test1 component</h1>"
})
export class Test1 { };

@Component({
    selector: 'test2',
    template: "<h1>This is test2 component</h1>"
})
export class Test2 { };

@Component({
    selector: 'my-app',

    template: `
        <h1>This is my test app</h1>
        <nav>
            <a [routerLink]="['Test1']">Test1</a>
            <a [routerLink]="['Test2']">Test2</a>
        </nav>
        <router-outlet></router-outlet>
    `,

    directives: [ROUTER_DIRECTIVES],

    providers: [ROUTER_PROVIDERS]
})
@RouteConfig([
    {
        path: '/test1',
        name: 'Test1',
        component: Test1
    },
    {
        path: '/test2',
        name: 'Test2',
        component: Test2
    }
])
export class TestComponent { }

File: index.html

<html>
    <head>

        <base href="/">

        <title>This is an Angular 2 test</title>

        <!-- Angular dependencies -->
        <script src="/node_modules/es6-shim/es6-shim.js"></script>
        <script src="/node_modules/systemjs/dist/system-polyfills.js"></script>
        <script src="/node_modules/angular2/bundles/angular2-polyfills.js"></script>
        <script src="/node_modules/systemjs/dist/system.src.js"></script>
        <script src="/node_modules/rxjs/bundles/Rx.js"></script>
        <script src="/node_modules/angular2/bundles/angular2.dev.js"></script>
        <script src="/node_modules/angular2/bundles/router.dev.js"></script>

        <!-- App -->
        <script>

            System.config({
                packages: {
                    app: {
                        format: 'register',
                        defaultExtension: 'js'
                    }/*,
                    'node_modules': {
                        format: 'cjs',
                        defaultExtension: 'js'
                    }*/
                }
            });

            System.import('app/main').then(null, console.error.bind(console));

        </script>

    </head>
    <body>
        <my-app></my-app>
    </body>
</html>

我正在使用Angular2 2.0.0-beta.9,这是我看到的行为。请注意,@RouteConfig中的两个路径均未标记为useAsDefault: true

当我尝试打开http://localhost:8080/#/test1该页面时,打开得很好,但是当我单击TestComponent模板中的2个锚点之一时,主题标签将被删除。

然后,如果我设置path1useAsDefault: true,即使我尝试访问,主题标签也会立即被删除http://localhost:8080/#/test1

有人可以告诉我我做错了什么还是一个错误吗?我只想在URL中获取主题标签。

贡特·佐赫鲍尔(GünterZöchbauer)

Angular2 <= RC.5

ROUTER_PROVIDERS需要前加入LocationStrategy,否则你以前添加LocationStrategy被覆盖。

bootstrap(
    TestComponent, 
    [
        ROUTER_PROVIDERS, 
        // must be listed after `ROUTER_PROVIDERS`
        provide(LocationStrategy, { useClass: HashLocationStrategy })
    ]
);

删除这行

providers: [ROUTER_PROVIDERS]

TestComponent

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

如何使用Angular2路由

来自分类Dev

在IIS 7.5上使用Angular2路由

来自分类Dev

Angular2路由与Express路由一起使用?

来自分类Dev

使用(2.0.0-rc.5)路由的Angular2路由

来自分类Dev

带有子路由器的Angular2路由器不起作用

来自分类Dev

带有子路由器的Angular2路由器不起作用

来自分类Dev

Angular2路由器-canActivate使用发布请求进行重定向

来自分类Dev

如何使用应用范围的URL前缀配置Angular2路由器?

来自分类Dev

使用ActivatedRoute检索Angular2路由上的数据属性,无论路由嵌套的级别如何

来自分类Dev

使用LoadChildren进行Angular 2路由

来自分类Dev

Angular 2路由器导航不起作用

来自分类Dev

Angular 2路由显示在模块中分解时不起作用

来自分类Dev

Web API 2路由属性不起作用

来自分类Dev

使用HTML5路由时,Angular 2的路由器是否损坏?

来自分类Dev

Angular2路由问题

来自分类Dev

没有MVC路由配置的WebApi 2路由不起作用

来自分类Dev

如何在页面刷新时使Angular 2路由与App Engine一起使用?

来自分类Dev

使用ASP .Net Core(非MVC)进行Angular 2路由

来自分类Dev

Angular 2路由:刷新页面并使用参数获取“无法加载资源”错误

来自分类Dev

Angular 2路由器无法与传递的多个参数一起使用

来自分类Dev

Angular2路由未由requirejs加载

来自分类Dev

ASP.net Web API 2路由属性不起作用

来自分类Dev

Google App Engine:webapp2路由不起作用

来自分类Dev

Zend2路由__NAMESPACE__不起作用或被忽略

来自分类Dev

带有前缀的ZF2路由在默认情况下不起作用

来自分类Dev

在类上的Symfony2路由注释不起作用

来自分类Dev

MVC5路由不起作用

来自分类Dev

Cakephp 3路由不起作用

来自分类Dev

MVC 5路由不起作用

Related 相关文章

热门标签

归档