恐怕你在这里使用的是旧版本的 Ember,安吉拉。您使用的是 pre 2,而最新版本是 pre 4。我建议您使用 pre 4,因为发生了很多变化。例如,看看你的第 119 行,我可以直接告诉你connectOutlets
pre 4 中没有任何方法了。
综上所述,我认为您的问题是,粗略地看一下,您正试图调用loadMoreDetails
控制器的内容,而不是控制器本身。尝试:router.get('oneContributorController').loadMoreDetails();
此外,在pre 4中不再可以访问路由器。我认为更新至关重要。
问题
Ember.Object
表示单个对象,而Ember.ObjectController
更多的是关于存储许多Ember.Object
s 的集合。您应该使用Ember.ArrayController
(类似对象的数组)、Ember.ObjectController
(许多不同相关对象的容器)或Ember.Controller
(通用用法),具体取决于您的用例。
你的背景是什么?红宝石还是 PHP?无论哪种方式,该fmt
方法都类似于 PHPsprintf
和 Rails 的%
运算符 ( "Tasks: %d" % @tasksCount
)。是指定的%@
值get('login);
将出现在字符串中的什么位置。
Ember 没有在 URL 本身中指定变量的名称。无论如何,不是默认情况下。是您的路由器(您使用的是路由器 v1,而它是 pre 4 中的路由器 v2)告诉 Ember URL 的哪个部分映射到哪个属性。这样就没有重复项,因为每个变量在 URL 中都有自己独特的空间。
这些来自您正在使用的旧 Ember。在新版本中,它们更加直观。为了告诉控制器它应该代表哪个模型,您model
在路由器中有一个方法可以返回正确的模型。在您使用的版本中,它们告诉 Ember 如何从 URL 参数创建对象(deserialize
- 为什么有deserialized
?),反之亦然,从您传入的对象中获取 URL 的属性(serialize
)。
PS:我想你会发现我昨天的帖子内容丰富。