小编adr*_*aan的帖子

从模板访问模型

使用ember,我发现有时模型存储在控制器的content属性中,有时模型也可以在控制器上直接使用.但是,我不明白,在这种情况下.

让我通过组装我的余烬MVC时发现的一个例子来解释它.

设置A - 开始

  • 我定义了一个自定义Member对象,相应的MemberRoute,MemberView类和一个名称模板member.
  • Member对象有一些属性,如id,nickname
  • 注意:没有MemberController定义表单的控制器,因此通过ember的约定,它自己提供控制器.

设置B - 自定义

  • 与设置A相同,但现在有一个MemberController定义包含从模板中触发的一些操作方法.

奇怪的行为(分别是我不完全理解的)

  • 在设置A中,我可以Member直接用{{id}}或引用它的属性{{nickname}}.
  • 在设置B中,我必须使用{{content.id}}{{content.nickname}}

如ember的文档中所记录的MemberView那样

setupController : function(controller, member) {
    controller.set('content', member);
},
Run Code Online (Sandbox Code Playgroud)

那么,有人可以帮助我理解为什么差异和差异在哪里?目前,我的猜测也是

  • 模板的上下文是不同的(可能在控制器的设置中缺少代码片段?)

要么

  • 由ember自动提供的默认控制器具有一些额外的魔力,不能直接用于自定义控制器.

任何帮助理解这一点是非常感谢的.到目前为止,我已经花了很长时间.我首先想到的可能是项目设置与requireJS引入的模块化(好吧,我仍然认为可能会产生影响).Ember是v1.0pre4.

提前致谢!帕特里克

ember.js

5
推荐指数
1
解决办法
2936
查看次数

标签 统计

ember.js ×1