首页 > 解决方案 > SAPUI5 从 xml 视图调用方法的模型

问题描述

是否可以从模型中调用方法?

例如,我扩展了我的 JSON 模型并添加了一个名为 hello_world 的函数。

在我的 XML 视图中,我想从如下控件调用此模型的方法并关闭事件:

 <Select change="{cl_vehicule>}.hello_world">
                    <items>
                        <core:Item text="1" key="1"/>
                        <core:Item text="2" key="2"/>
                    </items>
                </Select>

是否可以 ?

如果是怎么办?

标签: sapui5

解决方案


这是不可能的,原因如下:

1)您的 Select 控件中的更改是一个事件,因此它必须与一个函数相关联。这与调用函数不同。请注意,在使用事件时不要在方法名后添加 ()

2) cl_vehicule在您的示例中应该是控件和模型之间的关联名称。模型没有名字。您在数据绑定中 > 之前放置的名称在清单或setModel方法调用中指定。换句话说,同一个模型可以与不同的控件相关联,但使用不同的名称。

3) 使用 {} 表示您正在对该控件使用方法 bindProperty 或 bindAggregation。这些方法在 ManagedObject 类中定义。那些不能在事件中使用。

4) 由于 UI5 使用 MVC 范式,视图不应该直接联系模型


因此,您基本上应该使用将其与控制器中的功能相关联的更改事件。在该函数中,您有不同的方法让您的扩展模型调用方法。


推荐阅读