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