У меня есть следующий MXML:
<mx:Script>
var someBoolean:Boolean = determineSomeCondition();
</mx:Script>
....
<foo:MyComponent somePropertyExpectingIDataRenderer="{
someBoolean
? new Component1ThatImplementsIDataRenderer()
: new Component2ThatImplementsIDataRenderer()
}">
</foo:MyComponent>
Я также переопределил функцию createChildren ():
override protected function createChildren():void {
super.createChildren();
//do something with somePropertyExpectingIDataRenderer
}
Моя проблема в том, что createChildren () вызывается до оценки логики волнистых скобок, поэтому в createChildren () somePropertyExpectingIDataRenderer имеет значение null.
Однако, если я пропущу компонент через MXML, вот так:
<foo:MyComponent>
<bar:somePropertyExpectingIDataRenderer>
<baz:Component1ThatImplementsIDataRenderer/>
</bar:somePropertyExpectingIDataRenderer>
</foo:MyComponent>
Затем, когда вызывается метод createChildren (), это же свойство не равно нулю. Это должно произойти, и если да, то какие другие обходные пути я должен рассмотреть?