动态渲染余烬组件

时间:2018-09-18 10:20:24

标签: javascript ember.js

我希望在更改控制器属性时使用不同的属性重新渲染组件。所以,我有我的代码,

{{#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源代码内部。我认为尝试删除较旧的组件时出错。请帮我解决这个问题。

1 个答案:

答案 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仅放在变化的属性上