条件集angular / nativescript nsRouterLink

时间:2017-04-21 12:03:37

标签: angular nativescript angular2-nativescript

是否可以仅在特定条件为真时设置nsRouterLink?

让我们假设,我有一个列表视图,每个项目都有自己的nsRouterLink到详细信息页面。但是列表中的某些项目没有详细信息所需的ID,因此它们应该是不可点击的,而其他项目应该是。

我知道我可以使用onClick绑定并自己处理它,但是自动也可以使用nsRouterLink吗?

例如:

<StackLayout *ngFor="let item of items">
    <StackLayout [nsRouterLink]="['/path/' + item.id]">
        <!-- Content goes here -->
    </StackLayout>
</StackLayout>

3 个答案:

答案 0 :(得分:1)

我多次看到这个解决方案是什么:

<StackLayout *ngFor="let item of items">
    <StackLayout [nsRouterLink]="[item?.id ? '/path/' + item.id : false]">
        <!-- Content goes here -->
    </StackLayout>
</StackLayout>

答案 1 :(得分:0)

我没有太多使用过nsRouterLink。 但是当您将链接保留为null或未定义时会发生什么?

如果您确实处理了click事件的链接,那么应该在代码端有条件地监听事件,这意味着组件。

另一个选择是显示2个不同的组件。 如果有详细信息,请显示nsRouterLink 没有细节,显示标签。

这样的东西也可以起作用。

答案 2 :(得分:0)

使用isEnabled属性,如果不允许用户转到下一页,将禁用该按钮

<Button [isEnabled]="<value to check>" text="<Text>" [nsRouterLink]="['/<link>']"></Button>