假设视图绑定必须遵守模型道具,如何在另一个状态中触发状态更改?例如,第二国可能是派生道具还是儿童道具?
答案 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绑定中。