自我执行功能在另一个内部

时间:2016-03-02 15:35:04

标签: javascript

'use strict';
$(function () {

 var MyValues = []; //--> for Data
  function myArraysValues() {
      $.ajax({
          url: '/AdminLte/TestArray',
          type: 'Get',
          dataType: 'json',
          data: { test: 'Client_Call' },

          success: function (data) {
              for (var i = 0; i < 8; i++) {
                  MyValues.push(data[i]);
              }
          },
          error: function (data) {
              alert("error");
          },
      })
      return MyValues;
  }

});
//alert(MyValues);
var salesChartData = {

    labels: MyLabels,
    datasets: [
        {
        label: "Erledigt",
        fillColor: "rgb(0, 102, 0)",
        strokeColor: "rgb(0, 102, 0)",
        pointColor: "rgb(0, 102, 0)",
        pointStrokeColor: "#66ff33",
        pointHighlightFill: "#66ff33",
        pointHighlightStroke: "rgb((0, 102, 0)",
        data: MyValues
        },

这是我的代码。 myArraysValues()函数如何自动执行? 它适用于ChartJS(SalesChart)。 当添加警报(MyValues)时,它可以工作,如果我得到它,它就不会 感谢

1 个答案:

答案 0 :(得分:0)

我不确定你自动执行的意思,如果你想在页面加载时执行它,你可以在文档$(function () { getDataFromServerAndRenderChart(); }); function getDataFromServerAndRenderChart() { $.ajax({ url: '/AdminLte/TestArray', type: 'Get', dataType: 'json', data: { test: 'Client_Call' }, success: function (data) { var myValues=[]; for (var i = 0; i < 8; i++) { myValues.push(data[i]); } // use myValues array to initialize the chart HERE } }) } 事件中调用自定义代码/方法。但请确保执行代码以在ajax成功处理程序中呈现图表,因为异步调用中的数据将在其中可用,您可以安全地访问它。

{{1}}

此外,看起来你硬编码执行你的循环运行8次。我希望来自服务器的数据是一个至少有8个项目的数组,这样你的代码就不会崩溃。