我正在关注trek.github.com的一个介绍教程,并在运行时遇到了标题中的错误。 Paste is available,错误发生在第119行。与此同时,我想用这个帖子来解决一些EmberJS新手问题:
感谢您的耐心等待, 安吉拉
答案 0 :(得分:0)
我担心你在这里使用旧版的Ember,Angela。你正在使用pre 2,而最新的版本是4之前。我建议你使用pre 4,因为很多都已经改变了。例如,看看你的#119行,我可以直接告诉你,在前4版中没有connectOutlets
方法。
尽管如此,我认为你的问题是,粗略地看一眼,你试图在控制器的内容上调用loadMoreDetails
,而不是控制器本身。尝试:router.get('oneContributorController').loadMoreDetails();
此外,在第4版之前不再访问路由器。我认为更新是至关重要的。
<强>问题
Ember.Object
表示单个对象,而Ember.ObjectController
更多地是关于用于存储多个Ember.Object
的集合。您应该使用Ember.ArrayController
(一组类似对象),Ember.ObjectController
(许多不同相关对象的容器)或Ember.Controller
(通用用法)取决于在你的用例上。
你的背景是什么? Ruby还是PHP?不管怎样,fmt
方法就像PHP的sprintf
和Rails'%
运算符("Tasks: %d" % @tasksCount
)。 %@
用于指定get('login);
的值在字符串中的显示位置。
Ember未指定URL本身中的变量名称。不是默认,任何方式。这是你的路由器(你使用的是路由器v1,而它是前4中的路由器v2)告诉Ember URL的哪一部分映射到哪个属性。这样就没有重复,因为每个变量在URL中都有自己唯一的空间。
那些来自您正在使用的旧Ember。在新版本中,它们更直观。要告诉控制器它应该表示哪个模型,您在路由器中有一个model
方法,它返回正确的模型。在您正在使用的版本中,他们告诉Ember如何从URL参数创建对象(deserialize
- 为什么有deserialized
?),反之亦然,以获取该属性您传入的对象的网址(serialize
)。
P.S:我认为你会发现my post from yesterday内容非常丰富。