如何使用JS Generator在对话框的"输入"中绑定JSONModel

2020-08-28 00:02发布

         点击此处--->   EasySAP.com群内免费提供SAP练习系统(在群公告中)

加入QQ群:457200227(SAP S4 HANA技术交流) 群内免费提供SAP练习系统(在群公告中)


嗨,专家

我有一个问题需要您的帮助。

在我的代码中,我想使用js代码动态生成一个对话框。 但我想像下面的代码那样将其与我的JSON模型绑定在此控制器中。

 onInit:函数(){
     this.file =""
     this.data = {
         selectData:{}
     }
     this.setModel(新的JSONModel(this.data),'dmModel')
     this.oModel = this.getModel(" dmModel")
     console.log(this.getModel(" dmModel"))
 },
 ...
 onEdit:function(e){
     const listItem = e.getSource()。getParent()
     const testData = listItem.oBindingContexts.store.getObject()
     this.oModel.setProperty("/img/selectData",testData)

    //在控制台中打印数据
     console.log(this.oModel.getProperty("/img/selectData/purchaseRequisitionType"))
        
     const dialog = this.editMetalDialognew = new Dialog({
         ...
         内容:[
             新的FlexBox('innerbox1',{
                 ...
                 项目:[
                     ...
                     new Input('prType',{
                         宽度:" 150px",
                         值:" {dmModel>/selectData/purchaseRequisitionType}",//这是问题所在
                     })
                 ]
             }),
         ]
     })
 }
 

但是在页面上,对话框中的"输入"仍然为空。

在控制台中,我从console.log()获取数据

那么如果输入组件可以通过js代码绑定模型以实现两种绑定方式?

谢谢!

(6.6 kB)

         点击此处--->   EasySAP.com群内免费提供SAP练习系统(在群公告中)

加入QQ群:457200227(SAP S4 HANA技术交流) 群内免费提供SAP练习系统(在群公告中)


嗨,专家

我有一个问题需要您的帮助。

在我的代码中,我想使用js代码动态生成一个对话框。 但我想像下面的代码那样将其与我的JSON模型绑定在此控制器中。

 onInit:函数(){
     this.file =""
     this.data = {
         selectData:{}
     }
     this.setModel(新的JSONModel(this.data),'dmModel')
     this.oModel = this.getModel(" dmModel")
     console.log(this.getModel(" dmModel"))
 },
 ...
 onEdit:function(e){
     const listItem = e.getSource()。getParent()
     const testData = listItem.oBindingContexts.store.getObject()
     this.oModel.setProperty("/img/selectData",testData)

    //在控制台中打印数据
     console.log(this.oModel.getProperty("/img/selectData/purchaseRequisitionType"))
        
     const dialog = this.editMetalDialognew = new Dialog({
         ...
         内容:[
             新的FlexBox('innerbox1',{
                 ...
                 项目:[
                     ...
                     new Input('prType',{
                         宽度:" 150px",
                         值:" {dmModel>/selectData/purchaseRequisitionType}",//这是问题所在
                     })
                 ]
             }),
         ]
     })
 }
 

但是在页面上,对话框中的"输入"仍然为空。

在控制台中,我从console.log()获取数据

那么如果输入组件可以通过js代码绑定模型以实现两种绑定方式?

谢谢!

(6.6 kB)
付费偷看设置
发送
2条回答
N-Moskvin
1楼 · 2020-08-28 00:21.采纳回答

要能够从对话框访问视图模型,您需要定义两者之间的依赖关系:

 this.getView()。addDependent(dialog); 
Doze时光
2楼-- · 2020-08-28 00:20

谢谢你,Márián,这是工作!

一周热门 更多>