我希望在更改控制器属性时使用不同的属性重新渲染组件。所以,我有我的代码,
{{#if (eq diffView "type1")}}
{{comp/mycomp diffId=diffFile.id diffIdPrefix=diffView view=diffView thisCtrl=thisCtrl commitDiff=diffFile.diff filePath=diffFile.fileName}}
{{else}}
{{comp/mycomp diffId=diffFile.id diffIdPrefix=diffView view="line-by-line" thisCtrl=thisCtrl commitDiff=diffFile.diff filePath=diffFile.fileName}}
{{/if}}
更改属性diffView会引发类似这样的错误
vendorrepository.js:13602未捕获的DOMException:无法执行 “节点”上的“ removeChild”:要删除的节点不是此子节点 节点。在updatableBlockTracker的clear(...)处,在(...)处 TryOpcode.handleException(...)
此错误是在ember源代码内部。我认为尝试删除较旧的组件时出错。请帮我解决这个问题。
答案 0 :(得分:0)
您是否尝试过以下方法:
{{comp/mycomp
diffId=diffFile.id
diffIdPrefix=diffView
view=(if (eq diffView "type1") diffView "line-by-line")
thisCtrl=thisCtrl
commitDiff=diffFile.diff
filePath=diffFile.fileName
}}
想法是将if
仅放在变化的属性上