我正在使用Ember与Ember Data和LocalStorage Adapter,我正在寻找一种方法来强制ember从localstorage重新加载数据并相应地更新UI。
但是,我不知道如何手动强制从Ember外部重新加载。基本上我正在寻找这样的东西:
function reloadAssets() {
App.ApplicationAdapter.init(); // Cannot be called
}
我最初的想法是只调用LS Application Adapter的init()方法,但这是不可能的。
答案 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重新加载记录。