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