1

我正在编写一些代码来显示使用 Ember 夹具数据作为数据源的 D3 图表。图表在页面的第一次加载时显示得很好,但如果我移动到不同的路线然后返回第一条路线(带有工作图表的路线),图表就会消失。所以我想我的问题是,每次访问路线时如何让图表出现?这是我的路线和视图代码的样子,如果需要,将添加更多代码。

用 JS Bin 更新:http: //jsbin.com/ihapaz/2/edit

4

1 回答 1

2

当您返回该路线时,该路线可能不会获得任何数据。使用时linkTo不会model触发钩子。直接使用您传递给的setupController模型调用linkTo。但是,如果路由依赖于触发加载数据的模型钩子,则视图将为空,因为它没有任何要呈现的数据。

这是从上面的代码中唯一想到的。如果这不起作用,请尝试发布 jsbin。

编辑:发布 jsbin

查看您的 jsbin 后,我意识到我之前的答案是不正确的。一般来说,linkTo跳过模型钩子是正确的,但前提是存在动态段。您的路线没有动态路段。因此,模型挂钩将始终被调用,因此视图/图表正确获取数据。

错误在于您的render. 该render方法的目的是将 html 字符串推送到 DOM 上。这不是自定义 DOM 插入的合适位置。为此,您需要在didInsertElement方法上添加内容。

我进行了这些更改,重命名renderdidInsertElement和相应的updateChart. 这是更新的jsbin

于 2013-07-18T03:59:01.213 回答