Angular2-刷新页面时,url保持不变但未加载适当的 View

标签 angular angular2-routing

在 Angular2 中,我遇到了这个问题。刷新页面时。 URL 保持不变,但它不会在 RouterOutlet 中加载适当的 View 。

除刷新页面问题外一切正常。

app.ts

import {Component,bind} from 'angular2/core';

import {bootstrap} from 'angular2/platform/browser';
import {FORM_DIRECTIVES} from 'angular2/form';
import{HomeCmp} from 'Angular/src/Home/home.ts';
import {ContactUsCmp} from 'Angular/src/ContactUs/contactus.ts';

import {Router,ROUTER_PROVIDERS,RouteConfig, ROUTER_DIRECTIVES,APP_BASE_HREF,LocationStrategy,RouteParams,ROUTER_BINDINGS} from 'angular2/router';
@Component({
selector: 'micropuppy-app',
templateUrl: "ANGULAR/Templates/home.html",
directives:[HomeCmp,ROUTER_DIRECTIVES,ContactUsCmp],
template: ` <nav>
                    <ul class="nav navbar-nav">
                    **<li><a [routerLink]="['Home']">One</a><hr/></li>
                     <li><a [routerLink]="['ContactUs']">Contact Us</a></li>**
                    <li class="dropdown">
                        <a href="#" class="dropdown-toggle" data-toggle="dropdown" role="button" aria-haspopup="true" aria-expanded="false">Technologies <span class="caret"></span></a>
                        <ul class="dropdown-menu">
                            <li><a href="#">Angular</a></li>
                            <li><a href="#">.NET</a></li>
                        </ul>
                    </li>
            </ul>
        </nav>

    <router-outlet></router-outlet>`
 })

@RouteConfig([
  {path:'/Home', name: 'Home', component: HomeCmp}
  {path:'/ContactUs', name: 'ContactUs', component: ContactUsCmp}
])

export class MicropuppyApp {
    constructor(){
        console.log("Micropuppy app started");
    }
}
 bootstrap(MicropuppyApp, [ROUTER_PROVIDERS,bind(APP_BASE_HREF).toValue(location.pathname)]);

最佳答案

使用路由的默认策略(HTML5 历史 API),您需要一个服务器配置来将所有路径重定向到 HTML 入口点文件。使用 hashbang 方法就没有必要了……如果你想切换到这种方法,只需使用以下代码:

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

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

你可以看看关于这个问题的这些问题:

希望对你有帮助, 蒂埃里

关于Angular2-刷新页面时,url保持不变但未加载适当的 View ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35077977/

相关文章:

angular - 从 Angular 9.17 升级到 9.19 后无法构建

ios - 在 iOS 上为启用 PWA 的应用程序安装到主屏幕

node.js - "How to build a chatbot with anuglar and node.js"?

javascript - 使菜单处于事件状态

angular - 通过 routerLink 定位命名 socket 会添加无关的 "/"

html - Angular 2 从一个组件路由到另一个组件,然后不应用 CSS

angular - 更改 mat-autocomplete 宽度?

node.js - 使用 Angular 和 Express 的 CORS - 在 Postman 中工作,但不在浏览器中工作

express - Angular2.0 路由器适用于组件而不是模块?

Angular - 如何将 ngFor 过滤到特定的对象属性数据