在Flex移动应用程序(或任何Flex 4应用程序)中 - 如何根据其他2个字段的内容启用/禁用按钮?
我正在粘贴下面非常简单的测试代码,其中的问题是Flash Builder 4.7中的语法错误:The entity name must immediately follow the '&' in the entity reference.
- 这可能意味着符号是一个特殊字符,但如何解决这个问题(可能是频繁的) )问题?
TestApp.mxml:
<?xml version="1.0" encoding="utf-8"?>
<s:ViewNavigatorApplication
xmlns:fx="http://ns.adobe.com/mxml/2009"
xmlns:s="library://ns.adobe.com/flex/spark"
firstView="views.Home"
applicationDPI="160">
</s:ViewNavigatorApplication>
视图/ Home.mxml:
<?xml version="1.0" encoding="utf-8"?>
<s:View xmlns:fx="http://ns.adobe.com/mxml/2009"
xmlns:s="library://ns.adobe.com/flex/spark"
title="How to enable Login button?">
<s:layout>
<s:VerticalLayout paddingTop="8"
horizontalAlign="center" gap="8" />
</s:layout>
<s:Label text="Username:" />
<s:TextInput id="_username" />
<s:Label text="Password:" />
<s:TextInput id="_password" />
<s:Button id="_login"
label="Login"
enabled="{_username.text.length > 0 && _password.text.length > 0}" />
</s:View>
答案 0 :(得分:3)
当你在mxml中将其写在CDATA之外时,你应该用&&
替换&&
。
最好使用_username.text!=''
而不是_username.text.length > 0
,因为它会在运行时导致警告,因为text
不是事件调度程序,它无法报告length
更改。但是,它会更新按钮的可用性,因为text
将自行更改,TextInput
将报告它导致绑定更新。
答案 1 :(得分:0)
使用绑定表达式时。 mxml不考虑&amp;&amp;而是把你的表达写成
&安培;放大器&安培; amp;
.... mxml也不会读取转义字符,例如\ t for tab ...而是在actionscript中编写表达式,然后使用数据绑定.cheers; - )