如何使用绑定路径/上下文通过单个视图/控制器构建(多页面应用程序)?

2020-09-26 16:23发布

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

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


我正在构建一个创建调查/问卷应用程序,其中每个问题都具有与模型绑定的完全相同的格式。

是否可以使用一个控制器+视图执行此操作,并且只需操纵绑定上下文/路径?

我已经在SAP WEB IDE中为此创建了一个视图。 当我单击"添加新问题"按钮(以显示问题2的输入)时,如何准确设置新的绑定路径/上下文以接受其数据?

(48.0 kB)

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

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


我正在构建一个创建调查/问卷应用程序,其中每个问题都具有与模型绑定的完全相同的格式。

是否可以使用一个控制器+视图执行此操作,并且只需操纵绑定上下文/路径?

我已经在SAP WEB IDE中为此创建了一个视图。 当我单击"添加新问题"按钮(以显示问题2的输入)时,如何准确设置新的绑定路径/上下文以接受其数据?

(48.0 kB)
付费偷看设置
发送
6条回答
四川大学会员
1楼 · 2020-09-26 17:03.采纳回答

你好

如果我对您的要求感到厌烦...您想创建一个管理一组Question实体的应用程序。 每个问题以相同的形式出现(在屏幕快照中显示)。 如果我正确的话,这是一种解决方法。

如果您使用JSON模型,则可能必须管理一个数组:

 {
      题 : [ {
                    类别:"",
                    能力:''
                    ...
                  }]
 } 

每次单击"添加"按钮时,都必须将视图绑定到模型的最后一个元素。

此致

黑丝骑士
2楼-- · 2020-09-26 17:00

如果您有多个模型,则绑定应为:

 value =" {viewModel>/myProperty}"
 要么
 value =" {viewModel> myProperty}" 
当学会了学习
3楼-- · 2020-09-26 17:08

代码为:

View.xml

 
 
 <页面>
 
 <内容>
 
 

控制器:

 sap.ui.define([
 " sap/ui/core/mvc/Controller",
 " sap/ui/model/json/JSONModel"
 ],函数(Controller,JSONModel){
 "使用严格";


 return Controller.extend(" myApp.controller.View1",{

 onInit:function(){
 var oModel = new JSONModel({
 问题:[
 {myProperty:'AAA'},
 {myProperty:'BBB'},
 {myProperty:'CCC'}
 ]
 });
 this.getView()。setModel(oModel);
 var oContext = oModel.createBindingContext("/img/Questions/1/");
 this.getView()。setBindingContext(oContext);
 },

 onPrevButton:函数(oEvent){
 var oCtx = this.getView()。getBindingContext();
 var oModel = oCtx.getModel();
 var iIndex = parseInt(oCtx.getPath()。slice(11));
 this.getView()。setBindingContext(oModel.createBindingContext("/img/Questions/" + --iIndex +"/")));

 },

 onAddQuestion:函数(oEvent){
 var oModel = this.getView()。getModel();
 var jData = oModel.getData();
 jData.Questions.push({myProperty:'DDD'});
 var newIndex = jData.Questions.length-1;

 oModel.setData(jData);
 this.getView()。setBindingContext(oModel.createBindingContext("/img/Questions/" + newIndex +"/"));;

 }

 });
 });
 
Cikesha
4楼-- · 2020-09-26 17:13

可以在jsbin或plunkr中共享代码吗? 会很容易为您提供帮助。

吹牛啤
5楼-- · 2020-09-26 16:51

谢谢!

这就是我的想法,但是您能给我一个例子吗?

NavTo路由命令中是否包含绑定上下文?

huskylover
6楼-- · 2020-09-26 17:07

以上内容有两个问题……。

首先,它不是我将要使用的唯一模型,所以当我添加名称时。

 this.getView()。setModel(oModel," viewModel"); 

绑定不再在视图中起作用...

 value =" {myProperty}" 

另外,onPrevious现在崩溃了,因为我现在给它起了一个名字...

一周热门 更多>