我看到这个问题正在被重新提出,但仍然没有找到适合这种微不足道任务的解决方案。
此网址显示工作区的导航标签列表。
http://localhost:4200/users/1/workspaces
每个标签解析为
http://localhost:4200/users/1/workspaces/:wid
此外,我还有一个按钮,可以创建一个新工作区以及新选项卡。
这里看起来是怎样的控制器:
export default Ember.Controller.extend({
actions: {
newWorkspace: function () {
this.get('currentModel').reload();
var self = this;
var onFail = function() {
// deal with the failure here
};
var onSuccess = function(workspace) {
self.transitionToRoute('dashboard.workspaces.workspace', workspace.id);
};
this.store.createRecord('workspace', {
title: 'Rails is Omakase'
}).save().then(onSuccess, onFail);
}
}
});
当我点击按钮时,我在ember检查器中看到确实创建了新记录以及重定向到代表新创建工作区的id的URL。
我的问题是如何强制模型/模板重新加载。我已经杀了5h尝试model.reload()等。似乎不再支持所有东西。请帮忙。
更新 添加onSuccess
时model.pushObject(post);
throws Uncaught TypeError:internalModel.getRecord不是函数
答案 0 :(得分:0)
我相信您应该为Ember Data 1.12.x或更早版本调用this.store.find('workspace', workspace.id)
。对于1.13和2.0,有更复杂的钩子确定浏览器是否应该再次查询服务器或使用缓存值;在这种情况下,请致电this.store.findRecord('workspace', workspace.id, { reload: true })
。
答案 1 :(得分:0)
我不知道这是否有帮助。我遇到了类似的问题。我的行动是在路线上进行的。刷新功能可以处理所有事情。