Ember.js,HighCharts - 从控制器访问JSON数据

时间:2014-09-05 19:33:56

标签: javascript arrays json ember.js highcharts

我需要从模型中访问JSON数据,我使用" this.model"在控制器中。从我在控制台日志中看到的" this.model"正在返回数组数组。

  App.CardsRoute = Ember.Route.extend({
model: function() {
 return Ember.$.getJSON('/cards');
}
});

这是路径/卡片返回的服务器:

[[1317888000000,372.5101],[1317888060000,372.4]]

我想在我的ember HighStock(来自HighCharts)实现中使用该数据。它使用此手动输入的数据绘制图表:

  App.CardsController = Ember.ArrayController.extend({
    series: [{
           name : 'test',
                type: 'area',
                data :[[1317888000000,372.5101],[1317888060000,372.4]],

...

但不是这样画的:

App.CardsController = Ember.ArrayController.extend({
series: [{
                name : 'test',
                type: 'area',
                data : this.model,
...

从我在控制台中看到的,this.model不仅返回包含数据数组的数组,还返回其他特定于ember的对象,问题是什么?如果是,那么如何只访问JSON返回的数据,以便我可以在控制器中使用它?

1 个答案:

答案 0 :(得分:0)

在承诺成功后,您可以直接格式化路由器本身的数据。

初始化控制器时,此方法也将运行一次并将初始化。 要从控制器本身设置数据,请在json promise成功后格式化数据。 例如:

 App.CardsRoute = Ember.Route.extend({
   model: function() {
   return Ember.$.getJSON('/cards');
   }.then(function(data){
     return [{
           name : 'test',
           type: 'area',
           data : data,
           ...
         }]
 });

在控制器中执行此操作后

代码粘贴在jsbin http://jsbin.com/vekacayirugu/16/edit

这种格式化将适合您。 参考:http://emberjs.com/guides/object-model/computed-properties-and-aggregate-data/