Отключить привязку данных в MXML - PullRequest
1 голос
/ 15 августа 2010

Когда Flex SDK преобразует MXML в actionScript, он генерирует много кода привязки данных. Однако иногда я не хочу связывать переменную, например, если я знаю, что переменная не изменится.

Я не могу найти обходной путь во Flex, чтобы отключить автоматически сгенерированную привязку данных.

Кроме того, я надеялся, что это также может помочь с некоторыми предупреждениями времени выполнения, выдаваемыми привязкой данных. Чтобы обойти их, я иногда использую следующее, которое только выдает синтаксические предупреждения (и не появляется в моей консоли во время выполнения). Синтаксическое предупреждение: Привязка данных не сможет обнаружить изменения при использовании оператора квадратной скобки. Для Array, пожалуйста, используйте ArrayCollection.getItemAt ().

1 Ответ

3 голосов
/ 15 августа 2010

Следующий тег сообщит Flex SDK, что переменная на самом деле не изменяется, и удалит предупреждения «Невозможно связать ...»:

[Bindable("__NoChangeEvent__")]
private var model:MyModel = MyModel.instance;

Далее, переместите array[i] -подобные выражения в отдельную функциючтобы убрать предупреждения.Если у вас было это:

<mx:Button label="{array[i]}"/>

Затем создайте функцию:

private function buttonLabel(i):String
{
    return array[i];
}

И MXML:

<mx:Button label="{buttonLabel(i)}"/>

PS: если метка кнопки изменяется во время выполнения, тоВы можете добавить [Bindable(...)] метатеги к функции:

[Bindable("stringsChange")]
private function buttonLabel(i):String
{
    return array[i];
}

dispatchEvent(new Event("stringsChange"));
...