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'],
然後當初始化狀態,設置有第二狀態的狀態道具:
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')));
});
現在您的視圖(通過國家的支持),您可以綁定到其他國家,如:
bindings: {
'model.message_group.is_hired': {
hook: 'isHired',
type: 'toggle'
}
},
現在,當您對message_group.is_hired進行更改時,它將反映在Connection綁定中。
一個簡單的方法是'listenTo'你的模型https://ampersandjs.com/docs/#ampersand-events-listento。你也可以在道具中定義你的第一個狀態,並且創建第二個狀態(如果你願意的話)。然後在初始化過程中,您只需將第一個狀態傳遞給構造函數。 – amberv