第二级余烬路线不渲染

时间:2014-03-21 16:46:07

标签: javascript ember.js ember-data

最近我试图在Ember中渲染子模板时遇到了很多麻烦。下面的jsbin不起作用,因为我正在尝试使用REST适配器而无法弄清楚如何让mockjax和ember一起工作 - 无论如何,我认为REST适配器对问题至关重要,因为我会说明。

所以我有联系项目。我可以看到ember调用我的/ api / contacts路由来获取所有联系人列表的模型。在此之后,我正在尝试创建指向单个联系人的链接,并在同一模板中进行渲染。换句话说,我仍然会看到联系人列表,但我也看到了我刚刚点击的个人联系信息。该个人联系人包含许多contactPoints。基本上,发生的事情是我从未看到过ember寻找contactPoints。我看到“联系人”模板渲染,但它从来没有任何contactPoints。

如果不清楚,我可以澄清一下。但下面的链接应该有所帮助。谢谢!

http://emberjs.jsbin.com/xacuyalu/6/edit

1 个答案:

答案 0 :(得分:1)

我简化了你的JsBin以突出解决方案

http://emberjs.jsbin.com/xacuyalu/7

根据您的目标,您无需为出口命名。

代码中的主要问题是在循环和模板中使用变量的方式。 在您的contacts模板中,您可以编写

{{#each contact}}

但是在传递值

时忘记使用contact作为变量

同样,在contact模板中,您使用了不存在的contactItem。您可以在此处使用模型的属性。

mockajax的问题是您嘲笑/api/contacts而不是/contacts的网址。这适用于我修改过的JsBin。

另请注意,您的有效负载不适用于contactPoints

编辑:我已更新JsBin以显示联系点。

http://emberjs.jsbin.com/xacuyalu/9

首先,我建议你阅读https://github.com/emberjs/data/blob/master/TRANSITION.md。它将向您展示如何准备您的数据以便与Ember Data很好地协作。

我已将您的有效负载提取为更具可读性。以下是我所做的事情:

  • 侧载接触点
  • contactPointsIds更改json中属性的名称 到contactPoints
  • address型号
  • 上添加ContactPoint属性
  • Contact模型上的属性从contactPoint重命名为 contactPoints