检查视图模型长度的问题

时间:2019-09-26 18:35:17

标签: nativescript

我有一个带有列表视图的页面:

<ListView items="{{ tasteList }}" visibility="{{tasteList.length&gt; 0 ? 'visible' : 'collapse'}}">

我正在尝试检查asteList的长度并切换可见性,因此仅在其中包含项目的情况下才呈现列表视图,在这种情况下,我将呈现不同的布局:

    <StackLayout visibility="{{tasteList.length = 0 ? 'visible' : 'collapse'}}">

在我的测试用例中,返回了3个项目。使用上面的代码,在初始页面加载时,列表不可见,并且出现我的StackLayout。如果我离开该页面并返回,则显示列表视图(只要我不清空viewmodel0。

如果我删除条件并仅使列表视图始终可见,则页面将按预期加载列表视图和三个项目。

似乎条件是在实际加载视图模型之前检查的,之后没有更新。当我将<Label text="{{ tasteList.length }}" />放在页面顶部时  我看到“ 0”大约1秒钟,然后切换到“ 3”,但是在我的ListView / StackLayout上可见性未切换。 我在做什么错了?

1 个答案:

答案 0 :(得分:0)

假设您要在表达式上使用=====(为了提高可视性的条件语句),更重要的是,您应该在表达式前提及该属性,该属性应在更新时触发更改。 / p>

示例

<StackLayout visibility="{{ tasteList.length, tasteList.length === 0 ? 'visible' : 'collapse'}}">

在文档中,Using expressions for bindings