我有给定模板的组件的几个实例(我们称它为<Row />
):
{{component @resultComponentName result=@result}}
我从<Row />
组件像这样调用<Terminal />
组件:
{{#each @rows as |row|}}
<Row @result={{row.result}} @confirm={{fn this.confirm}} @resultComponentName={{this.resultComponentName}}/>
{{/each}}
<Terminal />
组件具有属性:
@tracked resultComponentName;
[在confirm()
组件中的操作<Terminal />
中处理:
if (cmd.resultComponentName) {
this.resultComponentName = cmd.resultComponentName;
} else {
this.resultComponentName = 'result-component';
}
其中cmd
是一些具有属性的Ember模型:
@tracked resultComponentName = 'other-result';
现在我只想在一个实例中更改@resultComponentName
,但是当我更改@resultComponentName
时,所有组件<Row />
实例都将重新呈现。
如何防止这种行为并使每个实例独立?预先感谢!
@tracked resultComponentName;
存在于您的Terminal
组件中,因此整个列表仅存在一次。