是否可以从模型中调用方法?
例如,我扩展了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>
有可能吗?
如果可以,怎么办?
答案 0 :(得分:1)
由于以下原因,这是不可能的:
1)Select控件中的 change 是一个事件,因此它必须与一个函数关联。这与调用函数不同。请注意,使用事件时,您不要在方法名称后添加()
2)在您的示例中, cl_vehicule 应该是控件和模型之间的关联名称。模特没有名字。在清单中或 setModel 方法调用中指定在数据绑定中置于>前面的名称。换句话说,同一模型可以与不同的控件关联,但使用不同的名称。
3)使用{}表示您正在对该方法使用方法bindProperty或bindAggregation。这些方法在ManagedObject类中定义。那些不能在事件中使用。
4)由于UI5使用MVC范例,因此视图绝不应该直接与模型联系
因此,您基本上应该使用 change 事件将其与控制器中的函数相关联。在该函数中,您有不同的方法来使扩展模型调用方法。