angular - 无法绑定(bind)到 'href',因为它不是已知的 native 属性

标签 angular angular2-routing

我是 Angular 2 的新手,我正在学习 Udemy 上的这门处于测试阶段的类(class)。

现在我想将我的项目升级到发布候选版本,我遇到了一个我在网上找不到任何地方的错误。

在我的 main.ts 中 我有这样的东西:


import {bootstrap} from '@angular/platform-browser-dynamic';
import {Component, OnInit, provide} from '@angular/core';
import {RegistrationComponent} from '../src/register/registratration.component.ts'
import {ROUTER_DIRECTIVES, ROUTER_PROVIDERS, Routes, Route, Router} from "@angular/router";
import {TempComponent} from "../src/register/temp.component.ts";
import {WorkComponent} from "../src/work/work.component.ts";
import {OrderComponent} from "../src/order/order.component.ts";
import {SignInComponent} from "../src/sign-in/sign-in.component.ts";
import {APP_BASE_HREF, HashLocationStrategy, LocationStrategy, Location} from '@angular/common';

///<reference path="/assets/jquery.d.ts" />

import jQuery = require('jquery');


@Component({
    selector: 'my-app',
    templateUrl: './src/app.component.html',
    directives:[RegistrationComponent, TempComponent, WorkComponent, OrderComponent, SignInComponent, ROUTER_DIRECTIVES]
})

@Routes([
    {path:'/temp', name: 'Temp', component: TempComponent},
    {path:'/registration', name:'Registration', component: RegistrationComponent},
    {path: '/work', name:'Work', component: WorkComponent},
    {path: '/order', name:'Order', component: OrderComponent},
    {path: '/sign-in/...', name:'Sign-In', component: SignInComponent}

    // new AsyncRoute({
    //     path: '/lazy',
    //     loader: () => ComponentHelper.LoadComponentAsync('LazyLoaded','./components/lazy-loaded/lazy-loaded'),
    //     name: 'Lazy'
    // })
])

export class AppComponent implements OnInit{
    public clicked:boolean;
    constructor(private router: Router) {}

    // //new router
    // router:Router;
    // location: Location;
    // constructor(router:Router, location:Location)
    // {
    //     this.router = router;
    //     this.location = location;
    // }
    //
    // getLinkStyle(path)
    // {
    //     return this.location.path() === path;
    // }

    ngOnInit():any {
        this.router.navigate([null]);
        this.clicked =false;
        console.log('on init');
    }

    public onClick($event:Event){
        if(this.clicked)
        {
            this.clicked = false;
        }
        else{
            this.clicked = true;
        }
    }



}
bootstrap(AppComponent,[ provide(APP_BASE_HREF, { useValue: "/" }),
                        ROUTER_PROVIDERS,
                        provide(LocationStrategy, {useClass: HashLocationStrategy})]);

在我的 app.component.html 中有

<h1>Sample</h1>
<nav>

    <button [routerLink]="['/Registration']">Register</button>
    <button [routerLink]="['/Temp']">Temporary</button>
    <button [routerLink]="['/Sign-In', 'Sign-In-Form']">Sign-In</button>
    <button [routerLink]="['/Temp']">Temporary</button>
</nav>
<router-outlet></router-outlet>

我得到的错误是这样的:

 EXCEPTION: Error: Uncaught (in promise): Template parse errors:
Can't bind to 'href' since it isn't a known native property ("
<nav>
    <!--<button [routerLink]="['/Registration']"></button>-->
    [ERROR ->]<button routerLink="['/Registration']">Register</button>
    <!--<button [routerLink]="['/Registrati"): AppComponent@4:4

有没有人遇到过这个问题,我该如何解决。如果有任何帮助,我将不胜感激。

提前谢谢你。

最佳答案

不确定这是否会解决问题,但是请尝试使用超链接而不是按钮,

<a [routerLink]="['/Registration']">Register</a>

关于angular - 无法绑定(bind)到 'href',因为它不是已知的 native 属性,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37641045/

相关文章:

javascript - momentJs add days 返回 moment 对象而不是日期

angular - 在 Angular2 中通过 JSON 加载路由

Angular 2 : How to find out what was previous page url when using angular2 routing

angular - 如何在 Angular Dart 2 中使用 'useValue' 的提供程序

Angular 6 : How to install a previous version of Angular project

angularjs - Angular RC 2 - 从 json 文件动态渲染组件

javascript - Angular 2 中的自动滚动

angular - Angular 7 中具有复数/选择属性的 i18n

javascript - 如何隐藏在一个组件ionic 2中显示不同的组件

当导航到具有不同参数的相同路由时,Angular 2 路由器无法重用相同的组件实例