来自服务的动态数据的nsRouterLink Nativescript

时间:2017-03-04 11:51:03

标签: nativescript

我有来自服务的数组

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中做到这一点..

谢谢。

2 个答案:

答案 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>