将值设置为AngularJS范围标签

时间:2015-03-11 20:46:50

标签: javascript angularjs graph

您好我正在尝试使用角度js创建条形图,我的要求是从网址获取数据并显示为条形图

我需要获取suitename并设置为$ scope.labels实际上我需要将值设置为

$scope.labels = ['test a', 'test b', 'test c'];

但我的代码正在做什么

$scope.labels = ["'test a', 'test b', 'test c'"]

(在乞讨和结束时引用); (当我在firebug中检查时,console.log似乎是正确的)总共3个名称被认为是1个字符串因为我附加到变量由于这个我的条形图x轴显示只有1个长名称而不是3个名称是否有任何实现这一目标的方法是我的代码我试过的

app.controller("BarCtrl", function ($scope, $http) {
    var apiResponse = $http.get("http://166.62.36.83/DataService/DataService.asmx/GetSuiteCoverageJson?testsuiteid=9");

        apiResponse.success(function(responseData, status, headers, config) {   
            var testSuiteName = "";
            var totalAutomationCases = "";  
            for (var i = 0, l = responseData.length; i < l; i++) {
                testSuiteName = testSuiteName + "\'"+ responseData[i].testSuiteName +"\'" +",";
                totalAutomationCases = totalAutomationCases + "'"+responseData[i].totalAutomationCases +"'" +",";
                //$scope.labels = [responseData[i].testSuiteName];
                console.log(testSuiteName.substring(0,testSuiteName.length-1)); 
            }
            $scope.labels = [testSuiteName.substring(0,testSuiteName.length-1)];

             console.log(totalAutomationCases.substring(0,totalAutomationCases.length-1));
             console.log(testSuiteName.substring(0,testSuiteName.length-1));
              $scope.series = ['Series A', 'Series B'];
              $scope.data = [
                ['2','4','1']
              ];
        });

    });

2 个答案:

答案 0 :(得分:1)

好像你过度补偿了这项任务。不需要像你一样连接字符串,实际上你创建了一个大字符串。如果您需要数组名称,您可以执行以下操作:

$scope.labels = responseData.map(function(el) {
    return el.testSuiteName;
});

Array.prototype.map在这里很方便。

答案 1 :(得分:0)

或者,快速解决方法是:

$scope.labels = testSuiteName.replace(/'/g, "").split(",")

也就是说,如果您想创建一个大字符串而不是将每个条目作为字符串处理并将其推入数组中。