【发布时间】:2015-09-22 15:13:01
【问题描述】:
您好,我有以下组件模板:
test-component.hbs: (produces img tag per model)
{{#each titleModels}}
<div class="item">
<img {{action "owlItemClicked" id index on="click" }} {{bind-attr src=img}}></img>
</div>
{{/each}}
在父模板中使用
parent.hbs:
{{test-component action="titleClicked" parentController=controller titleModels=model}}
在 titleClicked 操作中,假设删除 clickedModel 并刷新模板以显示已删除的视图。
parent-controller.js:
modelChanged: false,
actions: {
titleClicked: function(){
self.get('model').removeObject(aSelectedModel);
self.set('modelChanged',true);
}
}
测试组件观察titlesModel的变化并重新渲染模板:
test-component.js:
titleModelsChanged: function(){
this.rerender();
}.observes('parentController.modelChanged'),
this.rerender 方法已成功调用,并且已删除模型的特定 html 标记(例如下面定义的那个)不再出现在 DOM 中,用于从 test-component.hbs 生成的 html 页面,如预期的那样。
<img {{action "owlItemClicked" id index on="click" }} {{bind-attr src=img}}></img>
检查 dom 时会显示剩余模型的 img 标签。但是,即使在我检查元素时它们存在于 DOM 中,它们也不会显示在实际的 html 页面中(我没有看到实际的 imgs)。
html页面重新渲染后剩余模型的img标签如何显示?
【问题讨论】:
标签: ember.js