我正在编写一些代码来显示使用 Ember 夹具数据作为数据源的 D3 图表。图表在页面的第一次加载时显示得很好,但如果我移动到不同的路线然后返回第一条路线(带有工作图表的路线),图表就会消失。所以我想我的问题是,每次访问路线时如何让图表出现?这是我的路线和视图代码的样子,如果需要,将添加更多代码。
用 JS Bin 更新:http: //jsbin.com/ihapaz/2/edit
我正在编写一些代码来显示使用 Ember 夹具数据作为数据源的 D3 图表。图表在页面的第一次加载时显示得很好,但如果我移动到不同的路线然后返回第一条路线(带有工作图表的路线),图表就会消失。所以我想我的问题是,每次访问路线时如何让图表出现?这是我的路线和视图代码的样子,如果需要,将添加更多代码。
用 JS Bin 更新:http: //jsbin.com/ihapaz/2/edit
当您返回该路线时,该路线可能不会获得任何数据。使用时linkTo
不会model
触发钩子。直接使用您传递给的setupController
模型调用linkTo
。但是,如果路由依赖于触发加载数据的模型钩子,则视图将为空,因为它没有任何要呈现的数据。
这是从上面的代码中唯一想到的。如果这不起作用,请尝试发布 jsbin。
查看您的 jsbin 后,我意识到我之前的答案是不正确的。一般来说,linkTo
跳过模型钩子是正确的,但前提是存在动态段。您的路线没有动态路段。因此,模型挂钩将始终被调用,因此视图/图表正确获取数据。
错误在于您的render
. 该render
方法的目的是将 html 字符串推送到 DOM 上。这不是自定义 DOM 插入的合适位置。为此,您需要在didInsertElement
方法上添加内容。
我进行了这些更改,重命名render
为didInsertElement
和相应的updateChart
. 这是更新的jsbin。