在我的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"/>
我认为这是因为当我填写“&#39;文本”时richTextEditor中的值,&#39; htmlText&#39;价值也被取代。
有没有人知道克服这个问题的方法。
提前致谢。
答案 0 :(得分:0)
首先将连接的文本存储在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);
}