我收到此错误:
尝试
loadedData
在 rootState.loaded.updated.uncommitted 状态下处理事件。
我的控制器非常简单:
App.JudgeController = Ember.ObjectController.extend({
isEditing: false,
edit: function() { this.set('isEditing', true); },
done: function() { this.get("store").commit(); this.set('isEditing', false); }
});
我有一个表格,这是一个简化的版本:
<button class="btn btn-link" {{action 'edit'}} {{bindAttr disabled='isEditing'}}>Edit</button>
{{#if isEditing}}
{{view Ember.TextField placeholder="First Name" valueBinding="firstname"}}
<button type="button" class="btn btn-primary" {{action 'done'}}>Done</button>
{{#if isEditing}}
我在顶部有一个导航栏。因此,用户可以在编辑时单击导航栏并离开页面,而无需单击“完成”按钮。然后,如果他们回到那个页面,他们就会得到我在开头提到的那个错误。
我该怎么办?我有一堆表格,它们都有类似的问题。有最佳实践吗?
也许有一种方法可以在用户离开时调用我的控制器上的方法?然后我可以回滚,或者向用户显示警告和/或阻止他们离开。
编辑:我目前正在使用 Ember.js 的 RC5。但我不反对升级它。我并不真正喜欢 willTransition 解决方案(可能是因为它在路由器中,而现在我所有的逻辑都在控制器中,感觉有点乱)。我想我会在升级之前看到我得到的其他答案。