使用ItemTemplate时找不到格式器?

2020-09-20 23:04发布

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

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


大家好,

我已经阅读了所有可以找到的内容,并且似乎缺少一些东西。 在Master.view上启动应用程序时,我会使用itemTemplate动态构建屏幕。 一切正常,但是当我尝试在其中使用格式化程序时,它说找不到它。 相同的formatter.js和另一个函数可以在标准xml视图中正常工作。 这里有一些细节。

这是formatter.js。 忽略简单性,我删除了逻辑,因此它始终返回Value.State.Error。 如果可行,一切都会变成红色。

 sap.ui.define([" sap/ui/core/ValueState"],function(ValueState){
 "使用严格";
 返回{
 dueDateColor:function(sWord){
 返回ValueState.Error;
 }
 };
 });
 

这是我的Master.controller.js的标题

 sap.ui.define([
 " sap/ui/core/mvc/Controller",
 " sap/ui/model/Filter",
 " sap/ui/model/FilterOperator",
 " sap/m/MessageToast",
 " MyActivities/model/formatter"
 ],函数(控制器,过滤器,FilterOperator,MessageToast,格式化程序){
 "使用严格";
 return Controller.extend(" MyActivities.controller.Master",{
 格式化程序:formatter,

这是我的ItemTemplate。

 var itemTemplate = new sap.m.ObjectListItem({
 标题描述}",
 类型:"有效",
 按下:[this.GoToDetail,this],
 属性:[new sap.m.ObjectAttribute({
 文字:" {AccountTxt}"
 }),新的sap.m.ObjectAttribute({
 文字:"到期日:{路径:'ToDate',键入:'sap.ui.model.type.Date',
 formatOptions:{style:'long',UTC:true},
 格式化程序:"。formatter.dueDateColor'}"
 }]]
 }); 

堆栈上的某个人遇到了此问题,并通过在index.html中的引导程序中添加"复杂"绑定参数来解决了该问题。 不知道为什么,但是我还是尝试了。 没有骰子。

  

在我的Detail.view.xml上找到了用于其他功能的formatter.js却没有问题,但这很简单... 它不是使用ItemTemplate构建的。

  

我非常感谢您的帮助,也许只是另一双眼睛看到了我几个小时以来一直盯着我看的明显东西。 我唯一的想法是,这与ItemTemplate或ObjectListItem有关。

谢谢,
格雷格

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

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


大家好,

我已经阅读了所有可以找到的内容,并且似乎缺少一些东西。 在Master.view上启动应用程序时,我会使用itemTemplate动态构建屏幕。 一切正常,但是当我尝试在其中使用格式化程序时,它说找不到它。 相同的formatter.js和另一个函数可以在标准xml视图中正常工作。 这里有一些细节。

这是formatter.js。 忽略简单性,我删除了逻辑,因此它始终返回Value.State.Error。 如果可行,一切都会变成红色。

 sap.ui.define([" sap/ui/core/ValueState"],function(ValueState){
 "使用严格";
 返回{
 dueDateColor:function(sWord){
 返回ValueState.Error;
 }
 };
 });
 

这是我的Master.controller.js的标题

 sap.ui.define([
 " sap/ui/core/mvc/Controller",
 " sap/ui/model/Filter",
 " sap/ui/model/FilterOperator",
 " sap/m/MessageToast",
 " MyActivities/model/formatter"
 ],函数(控制器,过滤器,FilterOperator,MessageToast,格式化程序){
 "使用严格";
 return Controller.extend(" MyActivities.controller.Master",{
 格式化程序:formatter,

这是我的ItemTemplate。

 var itemTemplate = new sap.m.ObjectListItem({
 标题描述}",
 类型:"有效",
 按下:[this.GoToDetail,this],
 属性:[new sap.m.ObjectAttribute({
 文字:" {AccountTxt}"
 }),新的sap.m.ObjectAttribute({
 文字:"到期日:{路径:'ToDate',键入:'sap.ui.model.type.Date',
 formatOptions:{style:'long',UTC:true},
 格式化程序:"。formatter.dueDateColor'}"
 }]]
 }); 

堆栈上的某个人遇到了此问题,并通过在index.html中的引导程序中添加"复杂"绑定参数来解决了该问题。 不知道为什么,但是我还是尝试了。 没有骰子。

  

在我的Detail.view.xml上找到了用于其他功能的formatter.js却没有问题,但这很简单... 它不是使用ItemTemplate构建的。

  

我非常感谢您的帮助,也许只是另一双眼睛看到了我几个小时以来一直盯着我看的明显东西。 我唯一的想法是,这与ItemTemplate或ObjectListItem有关。

谢谢,
格雷格

付费偷看设置
发送
2条回答
jovirus
1楼 · 2020-09-20 23:08.采纳回答

嗨,格雷格,

实际上,您的详细信息视图是xml视图,但是看起来您是用javascript在master中编写模板项,因此要像这样访问格式化程序访问,而不是将格式化程序作为字符串传递,您需要在格式化程序中传递函数 属性..(自我指向此)

var self = this;

var itemTemplate = newsap.m.ObjectListItem({title:" {Description}",type:" Active",

新闻:[this.GoToDetail,this],属性:[newsap.m.ObjectAttribute({text:" {AccountTxt}"}),newsap.m.ObjectAttribute({text:" Due:{path:'ToDate  ',输入:" sap.ui.model.type.Date",
 formatOptions:{style:'long',UTC:true},
 formatter:self.formatter.dueDateColor}"})]}); 
clever101
2楼-- · 2020-09-20 23:28

删除引号对我也有用,谢谢Viplove!

一周热门 更多>