Javascript 如何在Ember JS控制器加载时启动函数?

Javascript 如何在Ember JS控制器加载时启动函数?,javascript,ember.js,Javascript,Ember.js,我是新加入Ember.js的。我试图在此脚本中设置dataset:categories和dataset:data:data的值。情况是,我随后将Highcharts视图插入到我的模板中,但我需要动态获取数据,因此我尝试修改控制器以处理此问题。我做错了什么?我该如何解决这个问题 App.InsightsController = Ember.ArrayController.extend({ setupController: function(controller, model) { var

我是新加入Ember.js的。我试图在此脚本中设置dataset:categories和dataset:data:data的值。情况是,我随后将Highcharts视图插入到我的模板中,但我需要动态获取数据,因此我尝试修改控制器以处理此问题。我做错了什么?我该如何解决这个问题

App.InsightsController = Ember.ArrayController.extend({
setupController: function(controller, model) {
    var chartJSON = []; // Empty in example but I have a valid JSON

    var KPICategories = [],
        KPIValues = [];
    for (var i = 0; i < chartJSON.length; i++) {
        var categoryDate = new Date(chartJSON[i]['file_creation_time']);
        KPICategories.push(categoryDate.getHours() + ':' + categoryDate.getMinutes());
        KPIValues.push(Math.round(chartJSON[i]['kpi_value']));
    };

    console.log(KPICategories);
    controller.set('dataset:categories', KPICategories);
    controller.set('dataset:data:data', KPIValues);
},
dataset: {
    categories: null,
    data: [{
        name: 'Downlink Throuput',
        data: null
    }]
}
});
App.InsightsController=Ember.ArrayController.extend({
设置控制器:功能(控制器、型号){
var chartJSON=[];//示例中为空,但我有一个有效的JSON
var KPICategories=[],
KPIValues=[];
for(var i=0;i
setupController
是一个路由挂钩。将其剪切/粘贴到管线中:

App.InsightsRoute = Ember.Route.extend({
  // This will fire after the model hook callback has returned, allowing you to interact with it.
  setupController: function(controller, model) {
    var chartJSON = []; // Empty in example but I have a valid JSON

    var KPICategories = [],
        KPIValues = [];
    for (var i = 0; i < chartJSON.length; i++) {
        var categoryDate = new Date(chartJSON[i]['file_creation_time']);
        KPICategories.push(categoryDate.getHours() + ':' + categoryDate.getMinutes());
        KPIValues.push(Math.round(chartJSON[i]['kpi_value']));
    };

    console.log(KPICategories);
    controller.set('dataset:categories', KPICategories);
    controller.set('dataset:data:data', KPIValues);
  }
});

我以前试过这个,但它无法加载图表。我使用Handlebar将数组简单地输出为HTML,它确实可以工作。但是,图表仍然无法加载。是否因为图表视图是在上述脚本运行之前加载的?否,视图渲染在运行循环中稍后进行。有可能你连高分都没有?您有使用
didInsertElement
的视图吗?我有。以下是我的视图:。您还可以向我展示如何在模板中使用该视图吗?{{view App.HighChartsView dataset=dataset title=”“type=“line”yAxisTitle=“”}}
App.InsightsRoute = Ember.Route.extend({
  // This will fire after the model hook callback has returned, allowing you to interact with it.
  setupController: function(controller, model) {
    //... You already set up the properties and whatnot...
    controller.fireOffMethod(args);
    controller.set('property_bar', controller.get('foo'));
  }
});