无法绑定到“routerLink”,因为它不是已知的本机属性[重复]
Posted
技术标签:
【中文标题】无法绑定到“routerLink”,因为它不是已知的本机属性[重复]【英文标题】:Can't bind to 'routerLink' since it isn't a known native property [duplicate] 【发布时间】:2016-06-30 20:57:18 【问题描述】:当我尝试添加 hashlocationstrategy 时发生此错误
boot.ts
///<reference path="../typings/browser.d.ts"/>
import bootstrap from "angular2/platform/browser";
import RootComponent from "./root.component";
import ROUTER_PROVIDERS, ROUTER_DIRECTIVES, LocationStrategy, HashLocationStrategy from "angular2/router";
import PLATFORM_DIRECTIVES, provide, enableProdMode from "angular2/core";
import HTTP_PROVIDERS from "angular2/http";
import FirebaseService from "./shared/firebase.service";
import Environment from "./config/environment";
if (Environment === "production")
enableProdMode();
bootstrap(RootComponent, [
FirebaseService,
ROUTER_PROVIDERS,
HTTP_PROVIDERS,
provide(
[PLATFORM_DIRECTIVES, useValue: [ROUTER_DIRECTIVES], multi: true],
[LocationStrategy, useClass: HashLocationStrategy]
)
])
.catch(err => console.error(err));
认为这是因为我同时使用平台指令和位置策略的语法是错误的。有什么线索吗?
【问题讨论】:
【参考方案1】:PLATFORM_DIRECTIVES
和 LocationStrategy
需要单独的 provide()
bootstrap(RootComponent, [
FirebaseService,
ROUTER_PROVIDERS,
HTTP_PROVIDERS,
provide(PLATFORM_DIRECTIVES, useValue: ROUTER_DIRECTIVES, multi: true),
provide(LocationStrategy, useClass: HashLocationStrategy)
.catch(err => console.error(err));
【讨论】:
hmm 然后我在没有括号Supplied parameters do not match any signature of call target.
的 TS lint 中得到它,它不会编译
我更新了答案。
这很好,谢谢!【参考方案2】:
您可以尝试以这种方式引导您的应用程序:
bootstrap(RootComponent, [
FirebaseService,
ROUTER_PROVIDERS,
HTTP_PROVIDERS,
provide(
PLATFORM_DIRECTIVES, useValue: [ROUTER_DIRECTIVES], multi: true),
provide(LocationStrategy, useClass: HashLocationStrategy)
])
.catch(err => console.error(err));
看到这个 plunkr:https://plnkr.co/edit/6fXmPi?p=preview
【讨论】:
嗯,你能检查一下这个线程吗?它是我的,它在没有哈希策略的情况下工作http://***.com/questions/35878966/router-directives-in-two-places-for-same-purpose/35880222#35880222
是的,你是对的。我错过了你问题的一部分。我认为您没有以正确的方式使用 provide
函数......我相应地更新了我的答案。
感谢您的回答,但 Günter Zöchbauer 已经回答了同样的问题;o
是的,我在编辑我的答案后看到了这一点;-) 不客气,很高兴看到您得到了问题的答案! @Günter 更快 ;-)以上是关于无法绑定到“routerLink”,因为它不是已知的本机属性[重复]的主要内容,如果未能解决你的问题,请参考以下文章
无法绑定到“routerLink”,因为它不是“a”的已知属性 [重复]
模板解析错误:无法绑定到“routerLink”,因为它不是“a”的已知属性 [重复]
无法绑定到“routerLink”,因为它不是已知的本机属性[重复]
无法绑定到“routerLink”,因为即使在导入 RouterModule 之后它也不是已知属性