Ember.js 弃用:控制器#需要已弃用,请改用Ember.inject.Controller()

Ember.js 弃用:控制器#需要已弃用,请改用Ember.inject.Controller(),ember.js,Ember.js,刚刚将Ember更新为v1.13.5,并收到以下警告: 弃用:控制器#需要已弃用,请改用Ember.inject.Controller() 找不到有关如何编写新语法的文档。如果您对如何修复此警告有任何建议,我们将不胜感激。这里是一个简单的示例,并详细介绍了从手动注入到“Ember.inject”的演变过程 由于某些原因,它在中被标记为私有方法,为了查看它,您需要勾选私有复选框 有两种方法可以使用它,一种是传递控制器名,另一种是不传递控制器名 App.PostController = Ember.

刚刚将Ember更新为v1.13.5,并收到以下警告:

弃用:控制器#需要已弃用,请改用Ember.inject.Controller()


找不到有关如何编写新语法的文档。如果您对如何修复此警告有任何建议,我们将不胜感激。

这里是一个简单的示例,并详细介绍了从手动注入到“Ember.inject”的演变过程


由于某些原因,它在中被标记为私有方法,为了查看它,您需要勾选私有复选框

有两种方法可以使用它,一种是传递控制器名,另一种是不传递控制器名

App.PostController = Ember.Controller.extend({
  posts: Ember.inject.controller()
});
如果未传递控制器的名称,ember将使用属性名称进行查找,例如
posts:ember.inject.controller('posts')

只有当属性和控制器具有不同的名称时,才能指定控制器名称

App.PostController = Ember.Controller.extend({
  myPosts: Ember.inject.controller('posts')
});

我提交了一个应该在维护人员有机会使用嵌套控制器时合并的文件,您建议将“admin/product”或“admin.product”作为name属性吗?两者似乎都适用于Ember 1.13,但不确定哪一种更为传统。流行的说法是“斜杠”是首选的,因为它们在文件系统上显示了相关文件的路径。
App.PostController = Ember.Controller.extend({
  myPosts: Ember.inject.controller('posts')
});