Ember.js 用余烬显示D3图形

Ember.js 用余烬显示D3图形,ember.js,d3.js,Ember.js,D3.js,谁能解释一下,如何使用模型的余烬数据,用d3和余烬绘制一个简单的线图。 当基础模型更改时,图形应重新渲染 我发现了以下JSFIDLE:“删除链接以发布解决方案”,但不理解它是如何工作的。 应该如何调整,例如,使用真实的余烬数据模型。 比如: App.Point = DS.Model.extend({ x: DS.attr("number"), y: DS.attr("number") }); 更新: 直观像素清理并更新了示例。我还添加了一些虚拟夹具数据: 现在的问题似乎是仍然呈

谁能解释一下,如何使用模型的余烬数据,用d3和余烬绘制一个简单的线图。 当基础模型更改时,图形应重新渲染

我发现了以下JSFIDLE:“删除链接以发布解决方案”,但不理解它是如何工作的。 应该如何调整,例如,使用真实的余烬数据模型。 比如:

App.Point = DS.Model.extend({
    x: DS.attr("number"),
    y: DS.attr("number")
});
更新:

直观像素清理并更新了示例。我还添加了一些虚拟夹具数据: 现在的问题似乎是仍然呈现随机生成的值,而不是夹具数据

更新2:


在IRC上的一些人的帮助下,这实现了我想要的:

这可能不是一个完整的解决方案,但是按照您提到的,我已经对代码进行了一些重构,以便它使用
成员数据
模型。我还将所有js依赖项更新为最新版本,以证明它仍然有效。我想您现在有了一个更好的起点,可以将
ember-data
的模型与d3一起使用,并且仍然遵循
ember
的约定

看看这个,你可能会发现它很有用

编辑

由于您在评论中询问路线的位置,请参见此处另一个更新的路线。它仍然使用随机值(为了简单起见),但您可以通过路线等导航看到数据的变化


希望能有所帮助。

这可能不是一个完整的解决方案,但按照您提到的步骤,我对代码进行了一些重构,以便它使用
ember数据
模型。我还将所有js依赖项更新为最新版本,以证明它仍然有效。我想您现在有了一个更好的起点,可以将
ember-data
的模型与d3一起使用,并且仍然遵循
ember
的约定

看看这个,你可能会发现它很有用

编辑

由于您在评论中询问路线的位置,请参见此处另一个更新的路线。它仍然使用随机值(为了简单起见),但您可以通过路线等导航看到数据的变化


希望能有所帮助。

从这个示例开始,您可以将函数
generateNewChartValues
替换为对服务器的ajax请求,该请求将返回图表的y值。要使其与点一起工作,如您的模型,您必须修改视图函数
didInsertElement
updateChart
与基础内容属性的工作方式;内容属性不是一个y值数组,而是一个“点”数组。假设有一个PointController(和route?),您能解释一下我如何在ChartView中访问该数据(controller.content)吗?ChartView的内容已经绑定到
App.chartValuesController
;请参见ApplicationView
chartValuesBinding:'App.chartValuesController.content'
和模板
{{view App.ChartView contentBinding=“view.chartValues”}
。使用ajax请求将chartValuesController的内容设置为您的积分路线。如果您还不知道,请提醒一下:Netflix有一个DSL(位于所需D3之上),还有一个更新的DSL,它更简单,从D3借用了一些,但不需要它。根据示例,您可以替换函数
generateNewChartValues
,向服务器发出ajax请求,返回图表的y值。要使其与点一起工作,如您的模型,您必须修改视图函数
didInsertElement
updateChart
与基础内容属性的工作方式;内容属性不是一个y值数组,而是一个“点”数组。假设有一个PointController(和route?),您能解释一下我如何在ChartView中访问该数据(controller.content)吗?ChartView的内容已经绑定到
App.chartValuesController
;请参见ApplicationView
chartValuesBinding:'App.chartValuesController.content'
和模板
{{view App.ChartView contentBinding=“view.chartValues”}
。通过ajax请求将chartValuesController的内容设置到您的积分路线。如果您还不知道,请提醒一下:Netflix有(在必需的D3上有一个DSL),还有一个更新的版本更简单,从D3借用了一些,但不需要。谢谢,这已经更容易理解了。最后一个问题,假设ChartValue来自某个存储,可能通过fixture或对json api的调用。我通常会在ChartValueRoute中执行类似return App.ChartValue.find()的操作,但这里没有路由。然后可以使用
controllers.chartvalue.content
或类似的工具访问这些值?请参阅更新的jsbin:我添加了一个
ApplicationRoute
,其中模型钩子返回的仍然是随机值,但它可能类似于
App.ChartValues.find()
,例如,如果您有固定装置,然后在模板中,可以像这样绑定视图的内容:
{{view App.ChartView contentBinding=“model”}
我已经用fixture更新了jsbin(),但现在图形不再呈现。我怀疑这是因为内容不是数组,并且
content.length
返回未定义的。你会怎么迭代呢?看起来我做错了什么,数据仍然是随机生成的,而不是固定装置:谢谢,这已经更容易理解了。最后一个问题,假设ChartValue来自某个存储,可能通过fixture或对json api的调用。我通常会在ChartValueRoute中执行类似return App.ChartValue.find()的操作,但这里没有路由。然后可以使用
controllers.chartvalue.content
或类似的工具访问这些值?参见