0

在学习 Ember.js 的同时,我正在帮助某人构建一个非常简单的应用程序。

最终,这将由 API 提供,但 API 仍在开发中,所以我试图弄清楚如何使用带有 Ember Data 的 Fixtures 来管理葡萄酒列表。

jsfiddle 是http://jsfiddle.net/YvmzN/5/

我想要做的是,当从列表中选择一个品种时,返回与该品种匹配的葡萄酒列表。但是,我没有得到任何输出。我从 jsfiddle 的网络检查器中收到了一些非常奇怪的错误,但我在本地没有收到任何错误,只是页面上没有显示葡萄酒。

我似乎无法弄清楚流程,我无法输出

控制台日志(这个)
从我的控制器内部App.WineRoute.model,所以我什至无法判断控制器是否被触发(我猜不是)。

有人可以指导我在这里做错了什么,也许可以解释 Ember 中发生的事情的结构以及您如何调试?

我认为它应该去路由器 -> 路由 -> 控制器 -> 模型 -> 控制器 -> 视图,但我似乎无法正确跟踪流程或了解为什么这不起作用。

正如 JSfiddle 中提到的,我目前正在从本地 JSON 文件中提取葡萄酒列表,从长远来看,我将从 API 请求已经过滤的列表,但我仍然想知道该怎么做在这一点上。

4

1 回答 1

2

在您获得更多信息之前,这是答案的一部分:

为了真正正确地使用 Ember Data,每条记录都需要有一个 id。

 App.Wine.FIXTURES =[
  {
    id:0,
    winery:"something hills",
    designation:"label name",
    varietal:"Merlot"
  },
  {
    id:1,
    winery:"something stream",
    designation:"label name 2",
    varietal:"Merlot"
  },
  {
    id:2,
    winery:"something grape",
    designation:"label name 3",
    varietal:"Syrah"
  }
];

Ember Data 在版本 13 和 1.0 beta 之间引入了一系列变化。这是一篇极好的读物(来自开发人员解释应该做些什么不同的事情)。

https://github.com/emberjs/data/blob/master/TRANSITION.md

适配器真的很相关,这里是你现在应该如何定义你的适配器

App.ApplicationAdapter=  DS.FixtureAdapter;

我做了一些重大的重构,老实说,我对葡萄酒不是很熟悉,所以我可能有一些术语错误或关系,但这里有一个例子,你可以解决很多问题。

http://jsfiddle.net/YvmzN/7/

作为一个有趣的旁注,如果您调用 transitionTo/transitionToRoute 并提供路线所需的模型,则不会点击模型挂钩。如果您不提供模型(或提供 id),它将在适用的路线中命中模型钩子(很确定有一个这样的例子,我说过渡到葡萄酒,但只传递品种的模型,所以它有品种资源的模型,但没有葡萄酒资源的模型,所以它命中了葡萄酒模型钩子)。

于 2013-10-01T14:24:29.600 回答