我正在使用Ember js,最新的1.7.0,我希望根据条件显示某些内容,但条件当然会发生很大变化。
但是Ember似乎只解析了我的代码一次,这意味着一旦它成为真,无论如何它都会保持正确,所以首先它不会显示,但它会显示但是空。
这是我的代码段
{{#if controller.selectedTmHit}}
{{tm-results-footer selectedTmHit=controller.selectedTmHit}}
{{/if}}
如何在ember中更新if条件?
**编辑
这是我的控制器
TsWebEditor.SubfileController = Ember.ObjectController.extend({
needs:['application'],
jobId:Ember.computed.alias("controllers.application.currentTask.jobId"),
selectedTmHit:null
});
这是我的部分主要部分
<div id="tabTmSearch" class="tab tab-pane active">
{{partial "subfile/tm-tab"}}
</div>
这是我的子文件/ tm-tab partial
<div class="container-fluid">
{{#if controller.selectedSegment}}
<div class="row">
<div class="tm-main-source">
{{tm-hit-source locale=sourceLocale segment=controller.selectedSegment}}
</div>
</div>
<hr/>
<div class="row tm-results-table">
<table class="table table-bordered table-condensed table-striped">
<tbody>
{{#each tmHit in controller.selectedSegment.tmHits}}
{{tm-hit tmHit=tmHit}}
{{/each}}
</tbody>
</table>
</div>
{{/if}}
</div>
{{#if controller.selectedTmHit}}
{{tm-results-footer selectedTmHit=controller.selectedTmHit}}
{{/if}}
首先它正确显示但是一旦if条件为真,它就不会被重新渲染,尽管selectedTmHit的值被改变而且它只显示一个空div
答案 0 :(得分:0)
好的我发现了问题,我遇到了一个未被捕获但未出现的异常,EmberJS在所有其他内容完成后进行渲染,所以当我的代码抛出异常时它没有完成渲染过程,因为该事件已终止,无法返回运行循环以继续执行。
因此,如果你有同样的事情,请检查你的异常,并确保你回到循环并完成处理。