2017-05-02 26 views
0

在我的ActionScript代碼中,我使用了richTextEditor來執行以下操作。如何替換RichTextEditor文本而不會丟失Flex中的格式

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的「文本」的值,則「的htmlText」值也被替換。

有沒有人知道一種方法來解決這個問題。

在此先感謝。

+0

你能添加屏幕截圖顯示格式化的文本,以及從下拉菜單中選擇一項後會發生什麼? – gbdcool

回答

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); 
} 
相關問題