&符号状态 - 如何从外部状态观察国家道具变化?

时间:2016-05-29 03:51:58

标签: ampersand.js

假设视图绑定必须遵守模型道具,如何在另一个状态中触发状态更改?例如,第二国可能是派生道具还是儿童道具?

1 个答案:

答案 0 :(得分:0)

正确,&符视图绑定必须遵守当前模型(和号状态)。

为了让当前国家“监听”另一个国家,您可以使用数据类型“州”将第二国作为当前国家的支柱包括在内,例如:

import State from 'ampersand-state';

export default State.extend({
    __name: 'ConnectionState',
    idAttribute: 'site_id',
    props: {
        site_id: ['any', true],
        message_group_id: ['any', true],
        message_group: ['state'],

然后在初始化状态时,将状态prop设置为2nd State:

let messageGroups = new MessageGroupsCollection(state.messageGroups);
let connections = new ConnectionsCollection(state.connections);

connections.forEach((model) => {
    model.set('message_group', messages.get(model.get('message_group_id')));
});

现在在您的视图中(由State支持)您可以绑定到另一个状态,如:

bindings: {
    'model.message_group.is_hired': {
        hook: 'isHired',
        type: 'toggle'
    }
},

现在,当您对message_group.is_hired进行更改时,它将反映在Connection绑定中。