我正在升级我的 Emberjs => 从 1.10.0 到 1.12.0 Ember-cli => 从 0.1.12 到 0.2.5
虽然我正在弄清楚大多数弃用的内容,但有一些我无法理解。 PFB相同
- 弃用:Ember.required 已弃用,因为其行为不一致且不可靠。它用在哪里以及如何更改它?
- 弃用:在注册表上调用了
lookupFactory
。这initializer
API 不再接收容器,您应该使用 用于从容器中查找对象的instanceInitializer
。
我确实理解这个问题,但我的初始化程序根本不使用查找。 PFB 我的初始化程序的代码。
//应用程序/初始化器/abc
initialize: function(registry, app) {
app.register('store:main', Store);
// Inject into each route a store property with an instance of store:main
app.inject('route', 'store', 'store:main');
// Inject into each controller a store property with an instance of store:main
app.inject('controller', 'store', 'store:main');
}
//应用程序/初始化器/def
initialize: function(registry, app) {
// Register the session object.
app.register('session:main', Session);
// Inject the session object into all controllers.
app.inject('controller', 'session', 'session:main');
}
弃用:使用 {{each}} 的上下文切换形式是 已弃用。请使用 block 参数形式(
{{#each bar as |foo|}}
) 来代替。看 http://emberjs.com/guides/deprecations/#toc_more-consistent-handlebars-scope 更多细节。
我在这里理解{{#each foo in bar itemController="abc"}}
应更改为{{#each bar itemController="abc"as |foo| }}
。但我的代码如下,没有“in”
,意思是使用这个上下文!{{#each paged itemController="class.adm.man.stop-term"}}
我该如何改变这个?
最佳答案
按照您的列表:
- 似乎是与 ember 数据相关的 issue 。如果没有,我确信还有另一个插件使用它,但不是你。因此你无能为力。
- 同样的事情。我已经介绍了一个例子作为评论。你的代码看起来很适合我,所以,我相信,你也无能为力。
- Ember 试图制定更加一致和明确的范围。
in
部分目前尚未弃用,因此最简单的解决方案是添加虚拟in
部分,例如{{#each page in paged itemController="class. adm.man.stop-term"}}
。但总的来说,我建议使用更复杂的解决方案 - 创建一个ItemList
组件并将其重构为:
{{#each paged as |page|}}
{{item-list model=page}}
{{/each}}
关于javascript - 将 ember-js 升级到 1.12.0 并将 ember-cli 升级到 0 0.2.5 时的缺陷,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30389404/