分屏式生根,出现详细错误帮助

2020-09-20 07:05发布

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

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


大家好!

我想导航到带有详细信息的拆分屏幕,并且希望在拆分屏幕上显示详细信息。

导航到分屏的效果很好,但不会传输详细信息。

有人可以帮助我吗?

谢谢。

马特。

下面的代码。

//Worklist.controller.js
//我的导航方式


 onPress:函数(oEvt){
 this.getRouter()。navTo(" Detail",{
 detailProductPath:oEvt.getSource()。getBindingContext()。getProperty(" PostID")
 });
 },
 
//Detail.controller.js


 sap.ui.define([
 'sap/ui/demo/bulletinboard/controller/BaseController',
 'sap/ui/model/json/JSONModel',
 'sap/ui/demo/bulletinboard/model/formatter'
 ],函数(BaseController,JSONModel,格式化程序){
 "使用严格";

 return BaseController.extend(" sap.ui.demo.bulletinboard.controller.Detail",{


 格式化程序:formatter,

 onInit:函数(){
 var oViewModel = new JSONModel({
 忙碌:错误
 });
 this.getRouter()。getRoute(" detail")。attachPatternMatched(this._onPostMatched,this);
 this.setModel(oViewModel," postView");
 },

 _onPostMatched:函数(oEvent){
 var oViewModel = this.getModel(" postView"),
 oDataModel = this.getModel();
 this.getView()。bindElement({
 路径:"/img/Posts('" + oEvent.getParameter(" arguments")。postId +"')",

 事件:{
 dataRequested:function(){
 oDataModel.metadataLoaded()。then(function(){
 oViewModel.setProperty("/img/busy",true);
 });
 },
 dataReceived:function(){
 oViewModel.setProperty("/img/busy",false);
 }
 }
 });
 }
 });
 });
 
//Detail.view.xml


 

 
 <页面>
 <页面>
 <内容>
 
 <平铺>
 
 
 
 <内容>
 <新闻内容
 contentText ="描述:{描述}"
 subheader =" {
 路径:"价格",
 格式化程序:"。formatter.financingPossibility"
 }">
 
 
 
 
 
 
 
 
 
 
 

 
//manifest.json



 "路由":{
 " config":{
 " routerClass":" sap.m.routing.Router",
 " viewType":" XML",
 " viewPath":" sap.ui.demo.bulletinboard.view",
 " targetAggregation":"页面",
 "异步":true
 },
 "路线":[
 {
 " pattern":"",
 " name":" home",
 " view":" Home",
 " targetAggregation":"页面",
 " controlId":" app"
 },
 {
 " pattern":"工作清单",
 " name":"工作清单",
 " view":"工作清单",
 " targetAggregation":"页面",
 " controlId":" app"

 },
 {" pattern":" Split",
 " name":" Splitapp",
 " view":" Splitapp",
 " targetAggregation":"页面",
 " controlId":" app",

 " subroutes":[{" pattern":" Split",
 " name":" Master",
 " view":" Master",
 " targetAggregation":" masterPages",
 " targetControl":" splitapp",

 "子路线":[{
 "模式":"拆分/{detailProductPath}","名称":"详细信息",
 "查看详情",
 " targetAggregation":" detailPages"
 }]
 }]
 }
 ]


 }
 

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

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


大家好!

我想导航到带有详细信息的拆分屏幕,并且希望在拆分屏幕上显示详细信息。

导航到分屏的效果很好,但不会传输详细信息。

有人可以帮助我吗?

谢谢。

马特。

下面的代码。

//Worklist.controller.js
//我的导航方式


 onPress:函数(oEvt){
 this.getRouter()。navTo(" Detail",{
 detailProductPath:oEvt.getSource()。getBindingContext()。getProperty(" PostID")
 });
 },
 
//Detail.controller.js


 sap.ui.define([
 'sap/ui/demo/bulletinboard/controller/BaseController',
 'sap/ui/model/json/JSONModel',
 'sap/ui/demo/bulletinboard/model/formatter'
 ],函数(BaseController,JSONModel,格式化程序){
 "使用严格";

 return BaseController.extend(" sap.ui.demo.bulletinboard.controller.Detail",{


 格式化程序:formatter,

 onInit:函数(){
 var oViewModel = new JSONModel({
 忙碌:错误
 });
 this.getRouter()。getRoute(" detail")。attachPatternMatched(this._onPostMatched,this);
 this.setModel(oViewModel," postView");
 },

 _onPostMatched:函数(oEvent){
 var oViewModel = this.getModel(" postView"),
 oDataModel = this.getModel();
 this.getView()。bindElement({
 路径:"/img/Posts('" + oEvent.getParameter(" arguments")。postId +"')",

 事件:{
 dataRequested:function(){
 oDataModel.metadataLoaded()。then(function(){
 oViewModel.setProperty("/img/busy",true);
 });
 },
 dataReceived:function(){
 oViewModel.setProperty("/img/busy",false);
 }
 }
 });
 }
 });
 });
 
//Detail.view.xml


 

 
 <页面>
 <页面>
 <内容>
 
 <平铺>
 
 
 
 <内容>
 <新闻内容
 contentText ="描述:{描述}"
 subheader =" {
 路径:"价格",
 格式化程序:"。formatter.financingPossibility"
 }">
 
 
 
 
 
 
 
 
 
 
 

 
//manifest.json



 "路由":{
 " config":{
 " routerClass":" sap.m.routing.Router",
 " viewType":" XML",
 " viewPath":" sap.ui.demo.bulletinboard.view",
 " targetAggregation":"页面",
 "异步":true
 },
 "路线":[
 {
 " pattern":"",
 " name":" home",
 " view":" Home",
 " targetAggregation":"页面",
 " controlId":" app"
 },
 {
 " pattern":"工作清单",
 " name":"工作清单",
 " view":"工作清单",
 " targetAggregation":"页面",
 " controlId":" app"

 },
 {" pattern":" Split",
 " name":" Splitapp",
 " view":" Splitapp",
 " targetAggregation":"页面",
 " controlId":" app",

 " subroutes":[{" pattern":" Split",
 " name":" Master",
 " view":" Master",
 " targetAggregation":" masterPages",
 " targetControl":" splitapp",

 "子路线":[{
 "模式":"拆分/{detailProductPath}","名称":"详细信息",
 "查看详情",
 " targetAggregation":" detailPages"
 }]
 }]
 }
 ]


 }
 
付费偷看设置
发送
5条回答
Violet凡
1楼 · 2020-09-20 07:29.采纳回答

我修复了该错误,这是因为我给属性指定了错误的名称,我给了"/img/Posts",但是在我的数据json中,属性名称为" PostID"。

我的更正代码在下面。

感谢您的帮助!

//WorkList.controller.js


 onPress:函数(oEvt){
 this.getOwnerComponent()。getRouter()。navTo(" Master",{
//源是被按下的列表项
 PostID:oEvt.getSource()。getBindingContext()。getProperty(" PostID")//<<<<这里。
 });
 },
 
//Master.controller.js



 _onPostMatched:函数(oEvent){

 var oViewModel = this.getModel(" postView"),


 oDataModel = this.getModel();
 this.getView()。bindElement({

 路径:"/img/Posts('" + oEvent.getParameter(" arguments")。PostID +"')",//<<<这里

 事件:{
 dataRequested:function(){
 oDataModel.metadataLoaded()。then(function(){
 oViewModel.setProperty("/img/busy",true);
 });
 },
 dataReceived:function(){
 oViewModel.setProperty("/img/busy",false);
 }
 }
 });
 }
 
//json数据


 {
 " PostID":" PostID_1",//<<<< HERE
 " Title":" 29'er Mountain Bike(red)",
 "时间戳记":"/img/Date(1428223780000)/",
 "描述":"一辆伟大的山地自行车,几乎没用过,像新的一样。包括踏板和马鞍",
 "类别":"自行车",
 "联系人":" contact.me07@gmail.com",
 "货币:美元",
 "价格":81,
 "飘动":0
   },
 
粗暴的香蕉
2楼-- · 2020-09-20 07:28

如果您有命名模型,则需要在" bindElement"方法中传递模型名称。.

蓋茨
3楼-- · 2020-09-20 07:44

嗨,Srikanth!

我已经尝试过,但是我使用了模拟服务器,所以我的modeljson位于webapp/localService/mockdata中,并且它不起作用,我假定不使用模拟服务器时会有所不同,因为通常在我通过模型时它就可以工作 名称在" bindElement"方法中。

现在我为清单中的数据命名,并在'bindElement'方法中传递模型名称,我的程序给我这样的错误:

错误:未被捕获的TypeError:无法读取未定义的属性'setDefaultbindingMode'。

错误:未捕获(承诺)TypeError:无法读取未定义的属性'getModel'。

谢谢。

 _onPostMatched:函数(oEvent){

 var oViewModel = this.getModel(" postView"),


 oDataModel = this.getModel();
 this.getView()。bindElement({

 路径:"/img/Posts('" + oEvent.getParameter(" arguments")。postId +"')",
 型号:"帖子",//在此处添加功能名称
 事件:{
 dataRequested:function(){
 oDataModel.metadataLoaded()。then(function(){

 oViewModel.setProperty("/img/busy",true);
 });
 },
 dataReceived:function(){
 oViewModel.setProperty("/img/busy",false);
 }
 }
 });
 }
 
//manifest.json

 "楷模": {
 " i18n":{
 " type":" sap.ui.model.resource.ResourceModel",
 "设置":{
 " bundleName":" sap.ui.demo.bulletinboard.i18n.i18n"
 }
 },
 "帖子":{//我在此处将姓名添加到清单中
 " dataSource":" mainService",
 "设置":{
 " metadataUrlParams":{
 " sap-documentation":"标题"
 }
 }
 }

 
软件心理学工程师
4楼-- · 2020-09-20 07:31

请尝试以下。

 onPress:function(oItem){
 console.info(oItem);
 this.getOwnerComponent()。getRouter()。navTo(" detail",{
 productId:oItem.getBindingContext(" modelname")。getProperty(" ProductID")
 });
 }
 
 onInit:function(){
 var oRouter = sap.ui.core.UIComponent.getRouterFor(this);
 oRouter.getRoute(" detail")。attachMatched(this._onRouteMatched,this);
 },
 _onRouteMatched:function(oEvent){
 var oView;
 oView = this.getView();
 oView.bindElement({
 路径:"/img/Products(" + oEvent.getParameter(" arguments")。productId +")",
 型号:"产品",
 参数:{
 展开:"供应商"
 },
 事件:{
 dataRequested:function(oEvent){
 oView.setBusy(true);
 },
 dataReceived:function(oEvent){
 console.info("问题详细");
 oView.setBusy(false);
 }
 }
 });
 },
 
当学会了学习
5楼-- · 2020-09-20 07:28

嗨,梅加尔!


它不起作用,因为我无法给我的模型起一个名字,如果这样做(下面的代码)我遇到了一个错误,并且我的程序无法正常工作。

谢谢。

//manifest.json

"模型":{
" i18n":{
" type":" sap.ui.model.resource.ResourceModel",
"设置":{
" bundleName": " sap.ui.demo.bulletinboard.i18n.i18n"
}
},
" nameOfMyModel":{//<<<<<我在这里给出一个名称。
" dataSource": " mainService",
" settings":{
" metadataUrlParams":{
" sap-documentation":"标题"
}
}
}
}

一周热门 更多>