我有来自服务的数组
private items = new Array<Item>(
{ id: 1, name: "Batman", link: "batmanscreen" },
{ id: 3, name: "doraemon", link: "dorascreen" },
...........
,
XML组件如:
<ActionBar title="Details" class="action-bar"></ActionBar>
<FlexboxLayout flexDirection="column" class="page">
<FlexboxLayout class="m-15">
<Label class="h2" [text]="item.id + '. '"></Label>
<Label class="h2" [text]="item.name"></Label>
</FlexboxLayout>
<Label class="h4" [text]="item.link"></Label>
<Label [nsRouterLink]="['/item.link']" text="go TO Screen" ></Label>
</FlexboxLayout>
和链接点击时在Android模拟器上的结果:
EXCEPTION: Uncaught (in promise): Error: Cannot match any routes. URL Segment: 'item.link'
我希望成为nsRouterLink = "['/batmanscreen']"
,但在nativescript导航中找不到任何指南,请指导。
在angular 2 web我可以处理它,但我不知道如何在nativescript中做到这一点..
答案 0 :(得分:0)
因此,您希望['/item.link']
评估为['/batmanscreen']
?那个'/item.link'
只是一个字符串文字,所以它不会被'batmanscreen'取代,因为你希望。
请尝试这样做:['/' + item.link]
。
答案 1 :(得分:0)
只需做这样的路线:
private items = new Array<Item>(
{ id: 1, name: "Batman", link: "/batmanscreen" },
{ id: 3, name: "doraemon", link: "/dorascreen" },
按照通常的方式在Angular的HTML中进行绑定(当使用{N} + Angular时,没有XML):
<Label [nsRouterLink]="item.link" text="go TO Screen" ></Label>