sapui5 - 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>
是否可以 ?
如果是怎么办?
解决方案
这是不可能的,原因如下:
1)您的 Select 控件中的更改是一个事件,因此它必须与一个函数相关联。这与调用函数不同。请注意,在使用事件时不要在方法名后添加 ()
2) cl_vehicule在您的示例中应该是控件和模型之间的关联名称。模型没有名字。您在数据绑定中 > 之前放置的名称在清单或setModel方法调用中指定。换句话说,同一个模型可以与不同的控件相关联,但使用不同的名称。
3) 使用 {} 表示您正在对该控件使用方法 bindProperty 或 bindAggregation。这些方法在 ManagedObject 类中定义。那些不能在事件中使用。
4) 由于 UI5 使用 MVC 范式,视图不应该直接联系模型
因此,您基本上应该使用将其与控制器中的功能相关联的更改事件。在该函数中,您有不同的方法让您的扩展模型调用方法。
推荐阅读
- python - 即使字典外的相同变量被更改,字典内的变量值也不会改变。为什么?
- c# - 如何在同一启动行中执行多个操作(作为字符串启动)
- angularjs - 读取 json 文件的 Karma+Jasmine 函数总是失败
- c# - 为什么我们的产品表是空的?
- java - 新端点在测试中导致 IllegalStateException:无效的 mime 类型“headers”:不包含 '/'
- sql - 在哪里放置以及如何使用 Xamarin 表单从手动创建的数据库文件中读取?
- c# - 如何对私有静态/共享方法进行单元测试?
- laravel - laravel 请求返回消息键翻译
- amazon-web-services - [AWS Lambda]:如何修复“未找到 GLIBC 2.27 版本”
- sql - 数据在同一列SQL中以不同样式显示