2

我现在的代码非常简单。在我的 script.js 中,我有:

var myApp = angular.module('myApp', ['dx']);
myApp.controller("defaultCtrl", function ($scope, $http) {
    $http.get("test.json").success(function (response) {
        $scope.data = response;
});

console.log($scope.data);//This shows "undefined"

$(function () {
    $("#gauge").dxCircularGauge({
        rangeContainer: {backgroundColor: 'peachpuff'},
        valueIndicator: {color: 'palegoldenrod'},
        value: 32,
        title: $scope.data[0].title,
        animation: {
            easing: 'linear',
            duration: 750
        }
     })
   });
});

然后在我的 Html 文件中,我有一个基本的 AngularJS 模块。

<body ng-controller="defaultCtrl">
    <div id = "gauge">
    </div>
</body>

我需要从 json 文件中读取设置,并从这些设置中生成图表。但是,我被困住了。任何帮助,将不胜感激。请不要告诉我不要使用 AngularJS 或 DevExtreme。

4

1 回答 1

2

这是一个转向问题。所以最初 $scope.data 没有定义,你尝试将它绑定到你的小部件。

将数据绑定到成功或您的 $q 承诺 API

$scope.BindWidget = function(data){
  $("#gauge").dxCircularGauge({
        rangeContainer: {backgroundColor: 'peachpuff'},
        valueIndicator: {color: 'palegoldenrod'},
        value: 32,
        title: data[0].title,
        animation: {
            easing: 'linear',
            duration: 750
        }
     })
   });
}

$http.get("test.json").success(function (response) {
       $scope.BindWidget(response);
});

当然你有这个问题,因为你没有以角度方式使用你的小部件。即使我提供了这个答案,我强烈建议您将方法更改为 DevExpress 推荐的正确方式。

在这里,您可以找到有关如何以角度方式使用量规控件的更多信息,以便它响应范围变化并成为摘要周期的一部分

于 2015-01-27T11:24:08.860 回答