Fab*_*och 8 ember.js ember-data ember.js-2
在Ember 2+中,是否有人知道如何获取对Ember Store的引用以便在javascript控制台中对模型映射进行故障排除?
通过App.__container__.lookupEmber 1 可以实现,但这已经不存在了,而且很难找到相关的文档.
谢谢
GJK*_*GJK 15
如果您查看package.json,您应该看到ember-export-application-global默认安装的软件包(如果没有,请安装它).这将导出您的应用程序不是全局App对象,而是导出以您的应用程序命名的全局对象.所以你可能有window.TodoList或window.ShoppingCart没有window.App.从那里你可以使用这一行(类似于Ember 1.xx):
AppName.__container__.lookup('service:store')
Run Code Online (Sandbox Code Playgroud)
您也可以执行我的操作并为其创建实例初始值设定项:
export default {
name: 'store-on-app',
after: 'ember-data',
initialize(instance) {
const application = instance.container.lookup('application:main');
const store = instance.container.lookup('service:store');
application.set('store', store);
}
}
Run Code Online (Sandbox Code Playgroud)
然后你可以使用AppName.store.
如果您不想安装单独的包来在控制台中访问您的应用程序,您可以通过window.Ember.Namespace.NAMESPACES. 例如,您可以在控制台中运行以查找您的应用程序实例的内容是:
var app = Ember.A(Ember.Namespace.NAMESPACES).filter(n => {return n.name === 'your-app-name'})[0];
Run Code Online (Sandbox Code Playgroud)
从这里,您可以访问应用程序容器上的商店,如@GJK 所述
var store = app.__container__.lookup('service:store');
Run Code Online (Sandbox Code Playgroud)
我用它来调试生产中的 Ember 应用程序,该应用程序没有在window. 我通过查看ember-inspector源代码发现了它,因为它始终可以访问容器。
| 归档时间: |
|
| 查看次数: |
1620 次 |
| 最近记录: |