apache-flex 如何替换RichTextEditor文本而不丢失Flex中的格式

mfpqipee  于 2022-11-01  发布在  Apache
关注(0)|答案(1)|浏览(179)

在我的ActionScript代码中,我使用richTextEditor执行以下操作。

protected function createEmailTemplateContent(subRecord:String = null):void{
var index:int = emailTemplateContent.selection.beginIndex;
if(subRecord != null){
    emailTemplateContent.text = emailTemplateContent.text.substring(0,index) + '{[' + fieldTypeDD.selectedItem + '].[' + insertFieldDD.selectedItem.toString().substring(0,insertFieldDD.selectedItem.toString().indexOf('(+)')-1) +  '].[' + subRecord + ']}' + emailTemplateContent.text.substring(index,emailTemplateContent.text.length);
}else{
    emailTemplateContent.text = emailTemplateContent.text.substring(0,index) + '{[' + fieldTypeDD.selectedItem + '].[' + insertFieldDD.selectedItem + ']}' + emailTemplateContent.text.substring(index,emailTemplateContent.text.length);
}
}

当用户从下拉列表中选择一个项时,上述方法将实现。然后,该特定项将被填充到富文本编辑器的文本区域中。
我的问题是,如果用户已经对文本进行了一些格式设置(使用RichTextEditor中的格式设置选项),那么当用户选择一个项目并填充文本区域时,这些格式设置也会被替换。
在这里,“emailTemplateContent”是指RichTextEditor。我在下面包含了我的RichTextEditor代码。

<component:RichTextEditorWithAllControls id="emailTemplateContent" dropShadowVisible="false" creationComplete="emailTemplatesContentInit()" headerHeight="0" width="100%" height="100%" htmlText="@{emailTemplateObject.emailContent}" showControlBar="false" verticalScrollPolicy="auto"/>

我假设发生这种情况是因为当我在richTextEditor中填充“text”值时,“htmlText”值也被替换了。
有没有人知道一种方法来克服这个问题。
先谢谢你。

fd3cxomn

fd3cxomn1#

首先将连接后的文本存储在String中,然后将其替换为html文本。

protected function createEmailTemplateContent(subRecord:String = null):void{
  var index:int = emailTemplateContent.selection.beginIndex;
  var newText:String;
  if(subRecord != null){
    newText = emailTemplateContent.text.substring(0,index) 
    + '{[' + fieldTypeDD.selectedItem + '].[' + insertFieldDD.selectedItem.toString().substring(0,insertFieldDD.selectedItem.toString().indexOf('(+)')-1) +  '].[' + subRecord + ']}' + emailTemplateContent.text.substring(index,emailTemplateContent.text.length);
  }else{
    newText = emailTemplateContent.text.substring(0,index) + '{[' + fieldTypeDD.selectedItem + '].[' + insertFieldDD.selectedItem + ']}' + emailTemplateContent.text.substring(index,emailTemplateContent.text.length);
  }
  emailTemplateContent.htmlText = emailTemplateContent.htmlText.replace(emailTemplateContent.text, newText);
}

相关问题