在Flex移动的应用程序(或任何Flex 4应用程序)中,如何根据其他两个字段的内容启用/禁用按钮?
我在下面粘贴了我非常简单的测试代码,它的问题是Flash Builder 4.7中的语法错误:The entity name must immediately follow the '&' in the entity reference.
-这可能意味着&符号是一个特殊字符,但如何解决这个(可能经常出现的)问题呢?
测试应用程序.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>
2条答案
按热度按时间qnyhuwrf1#
在mxml中的CDATA外部写入
&&
时,应将其替换为&&
。最好使用
_username.text!=''
而不是_username.text.length > 0
,因为text
不是事件调度程序,它会在运行时发出警告,并且不能报告length
的更改。但是,它会更新按钮的可用性,因为text
本身会被更改,并且TextInput
会报告它导致绑定更新。niwlg2el2#
使用绑定表达式时。mxml不考虑&&而是将表达式编写为
&&
....而且mxml不读取转义字符,例如\t表示制表符...而是在actionscript中编写表达式,然后使用数据绑定。干杯;- )