0

根据文档:

如果您使用的是 Ember Data,则仅当您需要返回与具有提供 ID 的记录不同的模型时,才需要覆盖模型钩子

但这对我不起作用,余烬数据给了我错误的数据。

App.UsersEditRoute = Ember.Route.extend
    model: (params) ->
            return ['Just', 'Some', 'Random']
    setupController: (controller, model) ->
            controller.set('model', model) # Returns @get('store').find 'user', params.user_id

这应该返回 ['Just', 'Some', Random],但它给了我原来的 @get('store').find 'user', params.user_id

为什么以及如何获得我想要的数据?顺便说一句,如果我喜欢下面,一切正常,但我想知道为什么我的模型函数永远不会被调用。

setupController: (controller, model) ->
    controller.set('model', ['Just', 'Some', 'Random']) # returns ['Just', 'Some', 'Random']

谢谢,我使用的是 ember-data 0.14 和 ember 1.0.0

4

2 回答 2

0

当我想覆盖模型挂钩时,我遇到了类似的问题。西蒙的回答给了我正确的方向。此外,还应注意,同样来自 ember 指南,但在Links部分中,{{link-to}} 助手需要:

每个动态段最多一个模型。默认情况下,Ember.js 会将每个段替换为对应对象的 id 属性的值。如果没有模型可以传递给助手,您可以提供一个明确的标识符值。该值将填充到路由的动态段中,并确保触发模型挂钩。

所以底线是通过将 {{link-to}} 助手中的模型(在我的情况下为“product”)替换为对象 id(在我的情况下为“product.id”),我的模型钩子现在被称为每个时间。

于 2015-02-19T17:05:13.453 回答
0

对于具有动态段的路由,模型钩子仅在(重新)加载页面时调用,这是ember 指南所说的(最后的注释):

注意:具有动态段的路由只有在通过 URL 输入时才会调用其模型挂钩。如果路线是通过转换进入的(例如,当使用链接到 Handlebars 帮助器时),则已经提供了模型上下文并且不会执行挂钩。没有动态段的路线将始终执行模型挂钩。

于 2013-09-18T09:21:03.833 回答