Развертывание пользовательских данных в модели ampersand.js

У меня есть модель - Configuration:

var Configuration = Model.extend({
    props: {
        name: 'string'
    }
});

В базе данных модель конфигурации / таблица имеет 3 столбца -> id, name а также fields, Последний хранит конфигурацию сайта как сериализованный массив. При извлечении записи из базы данных я десериализую ее, а затем передаю ее внешнему интерфейсу, поэтому внешний интерфейс получает это:

{
    "id": 1, 
    "name": 'global',
    "fields": {
        "enabled": true,
        "site_name": "Test"
    }
};

Что я хочу сделать, это установить все, что находится внутри fields объект как properties на моей модели, или, может быть, session так что вещи будут запускаться по всему сайту, когда они обновляются. Чтобы визуализировать это, я хочу достичь чего-то вроде этого:

var Configuration = Model.extend({
    props: {
        enabled: 'boolean',
        site_name: 'string'
    }
});

Итак, в принципе, есть ли способ "развернуть" материал в fields возражать как-то?

1 ответ

Решение

Метод синтаксического анализа - это то, что вы ищете в этом случае. См. https://github.com/AmpersandJS/ampersand-state/blob/master/ampersand-state.js#L93-L98 Это позволяет вам преобразовывать входящие реквизиты.

Другие вопросы по тегам