从外面重新加载Ember-Data

时间:2013-11-24 19:03:03

标签: javascript ember.js ember-data

我正在使用Ember与Ember Data和LocalStorage Adapter,我正在寻找一种方法来强制ember从localstorage重新加载数据并相应地更新UI。

但是,我不知道如何手动强制从Ember外部重新加载。基本上我正在寻找这样的东西:

function reloadAssets() {
  App.ApplicationAdapter.init(); // Cannot be called
}

我最初的想法是只调用LS Application Adapter的init()方法,但这是不可能的。

1 个答案:

答案 0 :(得分:1)

如果可以的话,您可能想重新考虑您的应用程序架构。但如果不了解更多信息,请查看Ember.Instrumentation。不确定这是否是最佳方式,但也许它可以帮助你。

您可以使用它将发送信号/事件从Ember外部发送到Ember。

// use jQuery to setup a click handler outside of Ember that will send
// Ember an an 'html.click' event that we defined
$('html').click(function(evt) {
  Ember.Instrumentation.instrument('html.click', evt);
});

在Ember内部,您可以定义检测到该事件时会发生什么:

// maybe in a route
Ember.Instrumentation.subscribe('html.click', {
  before: function(name, timestamp, payload) {
    this.send('handleHtmlClick', payload);
  },
  after: function(){}
});

我认为您可以这样做以强制Ember路由转换以从LSA重新加载记录。