覆盖SmartEdit中的服务

2020-08-16 11:15发布

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

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


你好! 由于SmartEdit中存在许多错误,因此我们试图通过覆盖服务来修复它们。 例如,我们创建了服务,该服务将覆盖" nestedComponentManagementServiceModule":

  angular.module('nestedComponentManagementServiceModule',['genericEditorModalServiceModule','yLoDashModule'])
          .service('nestedComponentManagementService',function(genericEditorModalService,lodash){
                 //------------------------------------------------  ------------------------
                 //公共API
                 //------------------------------------------------  ------------------------
                  this.openNestedComponentEditor = function(componentInfo,editorStackId,saveCallback){
                      var componentData = prepareComponentData(componentInfo,editorStackId);
                      saveCallback =(saveCallback)?  saveCallback:this.defaultSaveCallback;
     
                      返回genericEditorModalService.open(componentData,null,saveCallback);
                  };
     
                 //------------------------------------------------  ------------------------
                 //辅助方法
                 //------------------------------------------------  ------------------------
                  var prepareComponentData = function(componentInfo,editorStackId){
                      var type = componentInfo.content.itemtype.toLowerCase();
                      返回{
                          componentUuid:componentInfo.componentUuid,
                          componentType:componentInfo.content.itemtype,
                          标题:"类型"。  +输入+'.name',
                          内容:lodash.defaultsDeep({},{
                              typeCode:componentInfo.content.itemtype,
                              itemtype:componentInfo.content.itemtype,
                              可见:真
                          },componentInfo.content),
                          editorStackId:editorStackId
                      };
                  };
     
                  this.defaultSaveCallback = function(){
     
                  } .bind(this);
          });

  

但是它仍然默认执行一项服务。 有没有人有这样的经验。 谢谢您的帮助!

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

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


你好! 由于SmartEdit中存在许多错误,因此我们试图通过覆盖服务来修复它们。 例如,我们创建了服务,该服务将覆盖" nestedComponentManagementServiceModule":

  angular.module('nestedComponentManagementServiceModule',['genericEditorModalServiceModule','yLoDashModule'])
          .service('nestedComponentManagementService',function(genericEditorModalService,lodash){
                 //------------------------------------------------  ------------------------
                 //公共API
                 //------------------------------------------------  ------------------------
                  this.openNestedComponentEditor = function(componentInfo,editorStackId,saveCallback){
                      var componentData = prepareComponentData(componentInfo,editorStackId);
                      saveCallback =(saveCallback)?  saveCallback:this.defaultSaveCallback;
     
                      返回genericEditorModalService.open(componentData,null,saveCallback);
                  };
     
                 //------------------------------------------------  ------------------------
                 //辅助方法
                 //------------------------------------------------  ------------------------
                  var prepareComponentData = function(componentInfo,editorStackId){
                      var type = componentInfo.content.itemtype.toLowerCase();
                      返回{
                          componentUuid:componentInfo.componentUuid,
                          componentType:componentInfo.content.itemtype,
                          标题:"类型"。  +输入+'.name',
                          内容:lodash.defaultsDeep({},{
                              typeCode:componentInfo.content.itemtype,
                              itemtype:componentInfo.content.itemtype,
                              可见:真
                          },componentInfo.content),
                          editorStackId:editorStackId
                      };
                  };
     
                  this.defaultSaveCallback = function(){
     
                  } .bind(this);
          });

  

但是它仍然默认执行一项服务。 有没有人有这样的经验。 谢谢您的帮助!

付费偷看设置
发送
5条回答
CJones
1楼 · 2020-08-16 11:39.采纳回答

你好

cmssmartedit可能在模块之后被加载,而您的模块已被替换。 对此的可能解决方案是修改Smart Edit的配置。 在配置模块的位置,您可以添加extends属性,如下所示:

  {
    " smartEditContainerLocation":"/您的/扩展名/jsfile",
   "扩展":" cmssmarteditContainer"
  }

  

这可能有助于告诉引导机制仅在cms模块之后加载您的引导机制。

或者,替代尝试替换整个service.file可能是可行的-而是使用angular的装饰器修补技术,如下所述: https://docs.angularjs.org/guide/decorators#patch-the-delegate

希望有帮助,

浮生未央
2楼-- · 2020-08-16 11:42

谢谢! 第一个带有"扩展"的变体可以完美地工作!

何必丶何苦呢
3楼-- · 2020-08-16 11:45

在上面的代码中,您正在创建一个新模块。

您要做的是扩展现有模块。

代替(这将创建一个新模块):

  angular.module('nestedComponentManagementServiceModule',['genericEditorModalServiceModule','yLoDashModule'])。service(...);
  

使用(这适用于现有模块):

  angular.module('nestedComponentManagementServiceModule')。service(...);
  
土豆飞人
4楼-- · 2020-08-16 11:37

您是否还没有解决方案?

闻人可可
5楼-- · 2020-08-16 11:37

能否请您告诉我是否要在SmartEdit中创建新的API? 我们该怎么做呢?

例如所有APIS都在cmswebservices中。

一周热门 更多>