Архив метки: tip

Actionscript + Zend_AMF: вынимаем данные из объекта для отправки

Задача: создать на основе «навороченного» объекта  простой объект с данными.

Решение:

var tmp:Object = new Object();
// Prepare data to send
for (var key:String in sendData) {
      tmp[key] = sendData[key];
}

А теперь небольшая предыстория с комментариями 🙂

Пользуясь рекомендациями Adobe по работе с формами в Flex 4 сделал в форме так называемый Data Model с помощью <fx:model>.

<fx:Model id="sendData">
    <data>
        <sportsman_id>{sportsmanId}</sportsman_id>
        <uf_sd>{uf_sd.text}</uf_sd>
        <uf_dd>{uf_dd.text}</uf_dd>
     </data>
</fx:Model>

Вроде и удобно, и наглядно вышло, только вот, если скормить удаленному объекту (RemoteObject) такой объект с данными, то ничего не будет принято на принимающей стороне с Zend_AMF, видимо не происходит автоматической фильтрации данных.

Конечно, проблему можно было решить простым созданием нового объекта с поочередным присваиванием свойств объекта, но тогда какой профит от заморочек с Data Model?) Вот и я подумал, что профита не будет, но штука действительно удобная, поэтому немного пораскинув мозгами написал простой код конвертации, который вы сможете увидеть в начале заметки.