【发布时间】:2011-03-23 17:38:21
【问题描述】:
我创建了自己的组件,它使用 XML 文件的 lastResult 绑定到它的 dataProvider 属性。
绑定发生在 AS 中,如下所示:
BindingUtils.bindProperty(this.myChildComponent1,"dataProvider",this,"dataProvider");
以上成功地将this.dataProvider 绑定到我的子组件dataProvider。
问题出现了,我有另一个组件需要绑定结果 XML 的子项的值。更喜欢:this.dataProvider.child('NextNode')
但问题是,当组件的createChildren() 被调用时,XML lastResult 尚未填充,因为请求是异步的HTTPRequest,因此this.dataProvider 等于null。
最终,当数据到达时,它已在内部正确绑定,但我无法将数据的下一个子组件绑定到另一个组件 (this.myChildComponent2),无论是通过:BindingUtils.bindProperty(this.myChildComponent2,"dataProvider",this,"dataProvider.child('NextNode'");:说没有这样的子组件。
或通过
BindingUtils.bindProperty(this.myChildComponent2,"dataProvider",this,this.dataProvider.child('NextNode')); :表示this.dataProvider 为空/未定义。
即使发行:
if(this.dataProvider == null) {this.invalidateProperties();} else //Bind Child 不起作用,因为 commitProperties 只被调用一次,尽管我在检查内部 commitProperties() 后调用了 invalidateProperties()。
感谢任何帮助。谢谢。
【问题讨论】:
标签: apache-flex actionscript-3