【问题标题】:Issues checking the length of a viewmodel检查视图模型长度的问题
【发布时间】:2019-09-27 03:21:10
【问题描述】:

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

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

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

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

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

如果我删除条件并让列表视图一直可见,则页面会按预期加载列表视图和三个项目。

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

【问题讨论】:

    标签: nativescript


    【解决方案1】:

    您应该在表达式上使用=====(可见性的条件语句),更重要的是,您应该在表达式之前提及属性,该属性应在更新时触发更改。

    示例

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

    来自文档,Using expressions for bindings

    【讨论】:

    • 谢谢,在表达式之前提到属性是关键
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-04-29
    • 1970-01-01
    相关资源
    最近更新 更多