目前正在使用ember-cli构建Ember.js应用程序。
在模型的reopenClass
范围内,我需要使用Ember数据"存储":
Business.reopenClass({
search: function(params) {
# nope, there is no "store" on the class/static object
var store = this.store;
}
});
我知道我可以使用全局,但全局变量非常脏:
Business.reopenClass({
search: function(params) {
# this works, but the `window` global & `__container__` accessor are verbotten
var store = window.App.__container__.lookup("store:main");
}
});
如何在类/静态函数中使用lookup
或lookupFactory
?
答案 0 :(得分:1)
找到解决方案;跟随Ember的护栏:
My Business#搜索方法使用RESTAdapter #ajax执行自定义AJAX。适当地移出到适配器,可以进行Container#lookup。
var BusinessAdapter = ApplicationAdapter.extend({
search: function(params) {
// first class access to the container
var store = this.container.lookup("store:main");
// ...
var promise = this.ajax(url, "GET", { data: params }).then(function(adapterPayload) {
// ...
});
return promise;
}
});