Uso de formato HTML para generar variables en Flex / MXML
-
05-07-2019 - |
Pregunta
Estoy tratando de emitir una oración que contiene 4 variables, con sus valores envalentonados usando el siguiente código:
<mx:Text width="100%" y="307">
<mx:htmlText>
<![CDATA[Showing data from <b>{labelStartTime.text} {labelStartDate.text}</b> to <b>{labelEndTime.text} {labelEndDate.text}</b>]]>
</mx:htmlText>
</mx:Text>
Sin embargo, esto solo genera los nombres de las variables, en lugar de sus valores. Estoy seguro de que me estoy perdiendo algo simple, pero apreciaría cualquier sugerencia.
Saludos.
Solución
Sé de una solución:
Actionscript:
private var variable:String = "Variable String";
private var str:String = "<i><b>" + Variable + "</b></i>";
Mxml:
<Text htmlText="{str}" />
Otros consejos
No creo que sea posible agregar enlaces directamente en una sección de CDATA como esa, aunque sí tienes un par de opciones:
- Use una función, aprovechando BindingUtils.bindSetter:
import mx.binding.utils.BindingUtils; //called on creationComplete private function init():void { BindingUtils.bindSetter(setHtmlText, labelStartTime, "text"); BindingUtils.bindSetter(setHtmlText, labelStartDate, "text"); BindingUtils.bindSetter(setHtmlText, labelEndTime, "text"); BindingUtils.bindSetter(setHtmlText, labelEndDate, "text"); } private function setHtmlText(val:String):void { myText.htmlText = "Showing data from <b>" + labelStartTime.text + " " + labelStartDate.text + "</b> to <b>" + labelEndTime.text + " " + labelEndDate.text + "</b>"; }
- O simplemente codifique las etiquetas e insértelas directamente en el atributo:
Esto no se recomienda en realidad, ya que hace que el marcado sea increíblemente difícil de leer, pero podría salirse con la suya por algo tan pequeño como este.<mx:Text id="myText" width="100%" y="307" htmlText="Showing data from <b>{labelStartTime.text} {labelStartDate.text}</b> to <b>{labelEndTime.text} {labelEndDate.text}</b>"/>
Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow