如何使用notify()引发ObservableArray.changeEvent

时间:2018-12-14 11:37:02

标签: nativescript

XML中Repeater项的某些属性已绑定到方法(我不能为它们做getter,只能是方法):

<Repeater items="{{ some.items }}">
    <Repeater.itemsLayout>
        <StackLayout/>
    </Repeater.itemsLayout>
    <Repeater.itemTemplate>
        <Button tap="{{ onTap }}" text="{{ getText() }}" backgroundColor="{{ getButtonBg() }}"/>
    </Repeater.itemTemplate>
</Repeater>

所有作品。但是,尽管getButtonBg()并未更改,但我现在希望重新计算Repeater中每个按钮的some.buttons。 我尝试用不同的方式通过notify()引发不同的事件,但是不能强制调用getButtonBg()。 我不想做虚拟some.items.setItem(0, some.items.getItem(0)。有用。但我想通过notify()

获得相同的效果

1 个答案:

答案 0 :(得分:1)

notify()

some.items方法必须使用object引用相同的ObservableArray

来调用
this.some.items.notify({
    eventName: ObservableArray.changeEvent,
    object: this.some.items
});