我在一个大型遗留项目中注入了一些愚蠢的绑定错误,但我很难找到它 这是输出到控制台的错误:
警告:无法绑定到类'String'上的属性'length'(类 不是IEventDispatcher)
我尝试逐步调试,尝试追踪发生这种情况的地方,但是有成千上万行代码和事件消息,非常非线性的程序执行。
问题:有没有办法让Flash Builder在这样的警告上中断?如果没有,是否有其他方法,技巧或黑客来跟踪这个?
答案 0 :(得分:2)
这是由(等待它......)试图绑定到未标记为[Bindable]的属性引起的。在这种情况下,您有一个字符串变量,其length属性用于数据绑定。
这很可能是因为在组件的MXML标记中添加“myvar.length”作为属性引起的 - 类似于
<s:TextInput maxChars="{myInputString.length}" ...>
Flex将自动为您创建数据绑定,但它在运行时没有意识到该属性不是Bindable - 这意味着,如果属性值发生更改,通知将不会传播以更新侦听器。
数据绑定使用mx.binding.PropertyWatcher进行绑定,PropertyWatcher.updateParent是输出警告的位置。