Ano*_*ose 4 javascript model-view-controller sap sapui5
我有一个SAPUI5拆分应用程序,具有主视图和详细视图.
当我在侧栏中选择一个项目时,我将上下文传递给详细视图,让我们说产品1
onSelectProduct: function(evt){
sap.ui.getCore().getEventBus().publish("app", "refreshProductDetail", {context : evt.getSource( ).getBindingContext()});
},
Run Code Online (Sandbox Code Playgroud)
这会触发以下绑定上下文的函数:
refresh: function(channelId, eventId, data){
if (data && data.context) {
this.getView().setBindingContext(data.context);
}
},
Run Code Online (Sandbox Code Playgroud)
现在,当我执行像save这样的操作时,我想获取模型中产品1的当前数据.
但是,当我使用时
this.getView().getBindingContext().getModel()
Run Code Online (Sandbox Code Playgroud)
它返回包含所有产品的模型.我如何知道用户当前正在查看哪一个?
Tim*_*ach 16
您可以使用getPath()
bindingContext来查看当前显示的对象:
this.getView().getBindingContext().getPath();
Run Code Online (Sandbox Code Playgroud)
你可以这样做:
var bindingContext = this.getView().getBindingContext();
var path = bindingContext.getPath();
var object = bindingContext.getModel().getProperty(path);
Run Code Online (Sandbox Code Playgroud)
如果您只想显示所显示对象的某个属性,则可以执行以下操作:
var property = bindingContext.getProperty("<nameOfProperty>");
Run Code Online (Sandbox Code Playgroud)
它返回特定上下文中对象的属性.
更新:
您可以简单地调用getObject()
一个bindingContext,它返回当前上下文指向的模型中的对象:
var object = bindingContext.getObject();
Run Code Online (Sandbox Code Playgroud)
归档时间: |
|
查看次数: |
31402 次 |
最近记录: |