Javascript 更新余烬数据时刷新视图

Javascript 更新余烬数据时刷新视图,javascript,model-view-controller,ember.js,ember-data,Javascript,Model View Controller,Ember.js,Ember Data,我正在用余烬和余烬数据做一个非常基本的应用程序。 由于某种原因,我总是有同样的问题。我的应用程序正确地呈现和显示数据,但如果我删除并搜索,它不会更新视图 我已经问过这个问题了——这个链接有更多的代码示例,但运气不好。在这里: 根据你的代码,我试图为你的问题找到一个合理的解决方案 在进入解决方案之前,我认为控制器应该是IndexController而不是sampleDeleteModalController,因为ember希望控制器与路由具有相同的名称 App.SampleDeleteModalC

我正在用余烬和余烬数据做一个非常基本的应用程序。 由于某种原因,我总是有同样的问题。我的应用程序正确地呈现和显示数据,但如果我删除并搜索,它不会更新视图

我已经问过这个问题了——这个链接有更多的代码示例,但运气不好。在这里:


根据你的代码,我试图为你的问题找到一个合理的解决方案

在进入解决方案之前,我认为控制器应该是
IndexController
而不是
sampleDeleteModalController
,因为ember希望控制器与路由具有相同的名称

App.SampleDeleteModalController = Ember.ObjectController.extend({
  actions: {
    remove: function() {
        // Two ways
        this.get('model').destroyRecord(); 
        this.transitionToRoute('index');
    }
  }
});
来自同一路由的TransitionRoute不会刷新视图。仅当您要重定向到另一个路由时,此操作才有效

刷新视图的解决方案

选项1:删除记录后,您可以在索引路由内捕获相同的操作,您可以执行刷新模型的
this.refesh()

选项2:必须在控制器内显式更新绑定模型

actions: {
    remove: function() {
        // Two ways
        var localCopy = this.get('model');
        localCopy.destroyRecord(); 
        this.set('model',localCopy);
    }
  }
选项3:设置模型后,请先创建模型,然后执行此操作。rerender()。这几乎相当于
window.reload()

actions: {
    remove: function() {
        // Two ways
        var localCopy = this.get('model');
        localCopy.destroyRecord(); 
        this.set('model',localCopy);
    }
  }