在Ember 2+中,有没有人知道如何获得Ember Store的引用,以便在javascript控制台中排除模型Map的故障?这是可能的,通过App.__container__.lookup在ember1,但这并不存在了,这是血腥的很难找到有关这方面的文档。谢谢
App.__container__.lookup
41zrol4v1#
如果您查看package.json,您应该会看到默认安装的ember-export-application-global包(如果没有,请安装它)。这将不会将应用程序导出到全局App对象,而是一个以你的应用命名的全局对象。(类似于Ember 1.x.x):
package.json
ember-export-application-global
App
AppName.__container__.lookup('service:store')
您也可以像我一样为它创建一个instance initializer:
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); } }
然后,您可以使用AppName.store。
AppName.store
vojdkbi02#
如果您不想安装单独的软件包来访问控制台中的应用,您可以通过window.Ember.Namespace.NAMESPACES来安装。例如,您可以在控制台中运行以下命令来查找您的应用示例:
window.Ember.Namespace.NAMESPACES
var app = Ember.A(Ember.Namespace.NAMESPACES).filter(n => {return n.name === 'your-app-name'})[0];
从这里,您可以访问应用程序容器上的商店,如@GJK所述
var store = app.__container__.lookup('service:store');
我用这个调试了一个Ember应用程序,它没有在window上注册它的容器。我通过查看ember-inspector源代码找到了它,因为它总是可以访问容器。https://github.com/emberjs/ember-inspector/blob/2237dc1b4818e31a856f3348f35305b10f42f60a/ember_debug/vendor/startup-wrapper.js#L201
window
ember-inspector
2条答案
按热度按时间41zrol4v1#
如果您查看
package.json
,您应该会看到默认安装的ember-export-application-global
包(如果没有,请安装它)。这将不会将应用程序导出到全局App
对象,而是一个以你的应用命名的全局对象。(类似于Ember 1.x.x):您也可以像我一样为它创建一个instance initializer:
然后,您可以使用
AppName.store
。vojdkbi02#
如果您不想安装单独的软件包来访问控制台中的应用,您可以通过
window.Ember.Namespace.NAMESPACES
来安装。例如,您可以在控制台中运行以下命令来查找您的应用示例:从这里,您可以访问应用程序容器上的商店,如@GJK所述
我用这个调试了一个Ember应用程序,它没有在
window
上注册它的容器。我通过查看ember-inspector
源代码找到了它,因为它总是可以访问容器。https://github.com/emberjs/ember-inspector/blob/2237dc1b4818e31a856f3348f35305b10f42f60a/ember_debug/vendor/startup-wrapper.js#L201