我有一个把手模板,我有一张桌子。
<script type="text/x-handlebars" data-template-name="customers">
<table>
<tbody>
{{#each nomday in allnominationdays}}
<tr class="nomdays" {{action "saveNomDay" nomday on="focusOut"}}>
<td>{{nomday.confirmedVolume}}</td>
<td>{{nomday.variance}}</td>
</tr>
{{/each}}
</tbody>
</table>
</script>
在我的控制器中,我有一个函数,我从tr上定义的动作saveNomDay调用。
update: function()
{
console.log('Not Working');
allnominationdays = this.get('allnominationdays');
//this.set('allnominationdays',null);
allnominationdays.objectAt(0).variance = 75;
this.set('allnominationdays',allnominationdays);
},
但是当我更改对象数组的值时,我的视图没有改变。如果我将对象数组设置为null,则模板更新并且不显示任何表。我不确定是什么打破了更新视图的绑定?
代码块在控制器功能中更新视图,但在动作上调用时不更新。但是在操作设置中,对象数组为null,更新视图并删除整个表。不知道发生了什么。 EmberJS的新内容
谢谢,
答案 0 :(得分:0)
我来不及但迟到总比没有好。发生这种情况是因为视图在值中的更新可以传播到屏幕之前呈现。执行以下代码:
- 模板
{{#if isVisible}}
<table>
<tbody>
{{#each nomday in allnominationdays}}
<tr class="nomdays" {{action "saveNomDay" nomday on="focusOut"}}>
<td>{{nomday.confirmedVolume}}</td>
<td>{{nomday.variance}}</td>
</tr>
{{/each}}
</tbody>
</table>
{{/if}}
- 组件/控制器
self.set('isVisible',false);
var propgationPromise = new Promise(function(resolve, reject) {
//update Value
console.log("promise started");
resolve();
});
propgationPromise.then(function(){
console.log("promise stopped");
self.set('isVisible', true);
});