ampersand.js 模型中的自定义数据展开

Custom data unwrapping in ampersand.js model

我有一个模型 - Configuration:

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

在数据库中,配置模型 / table 有 3 列 -> idnamefields。后者将站点配置存储为序列化数组。从数据库中检索条目时,我将其反序列化,然后将其传递给前端,因此前端收到此:

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

我想要做的是将 fields 对象中的任何内容设置为我模型上的 properties,或者可能 session,以便在它们出现时在整个站点中触发更新。为了形象化,我想实现这样的目标:

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

所以基本上,有没有办法以某种方式在 fields 对象中 'unwrap' 内容?

parse 方法就是您在这种情况下要查找的方法。参见https://github.com/AmpersandJS/ampersand-state/blob/master/ampersand-state.js#L93-L98它允许你转换传入的道具。