延迟加载属于

时间:2013-12-08 19:04:45

标签: ember.js ember-data

我有一个通过DS.belongsTo链接的子模型和父模型。在我的child/index模板中,我链接到父级:

{{linkTo "parent" parent}} go to parent {{/linkTo}}

现在这是我的问题:Ember Data会逐个加载所有父模型(即使我在async: true关系中指定了belongsTo)。这似乎是由linkTo引起的,因为当我删除该行时,此行为会停止。

如何阻止ED beta 3这样做?用例是我的子模型是父模型的部分模型,因此这种行为违背了我的设置点(并且似乎没有必要)。

2 个答案:

答案 0 :(得分:2)

虽然@ kinpin2k的答案可行,但我找到了一个更好的答案:我刚刚发现{{link-to}}也接受id作为参数。

就我而言,我将parent: DS.belongsTo('parent')更改为parent_id: DS.attr('string')。没有必要改变我的任何后端,因为这是Active Model Serializer无论如何都返回它。然后我将模板更改为:

{{link-to "parent" parent_id}} go to parent {{/link-to}}

并且一切正常,因为(正如@ kingpin2k很好地解释的那样)Ember不再访问父模型了。

编辑:已更新以反映新语法:{{linkTo}}现在是{{link-to}}

答案 1 :(得分:1)

这不是Ember Data,它是Ember访问模型。异步意味着在有人试图访问它之前不加载它,在链接中使用它被视为使用它。

您可以将其添加到某个操作,然后转换到该路径,而不是使用link0to