3

我正在尝试使用 cf 后端查看 AngularJS

我有以下代码可以提取一个名为 getIndex 的常规 cfquery,它每列提取五行(firstName,lastName)

var theQuery = <cfoutput>#serializeJSON(getIndex,true)#</cfoutput>;
        var theData = theQuery.DATA

        function dataLooper($scope){
            $scope.people = theData;
            console.log($scope.people);
        }

控制台日志产生

对象 { FIRSTNAME=[5], LASTNAME=[5]}

我的 html 看起来像

<div ng-controller="dataLooper">
          <div ng-repeat="person in people">
          {{person}} - {{person.FIRSTNAME}}<br>
          </div>
</div>

产生

    ["Yasteel","Kyleigh","Gary","Nick","Kerry-Leigh"] -
["Si","No","Ho","Ga","Gr"] - 

显然我错过了一些东西,因为这根本不是我所期望的。我猜这是因为 AngularJS 正在寻找一个数组而不是一个对象。我不确定,但我希望 serializeJSON 能给我某种类型的可用对象,而无需进行大量额外操作。有人可以指出我正确的方向吗?

4

2 回答 2

3

ng-repeat可以处理数组或对象。对于对象,使用“(key, value)”语法。

但这不会解决您的问题,除非您像这样重新格式化数据:

{ 'Yasteel':'Si', 'Kyleigh':'No', ... }

然后你可以这样做:

<div ng-repeat="(first,last) in people">
    {{first}} - {{last}} <br>
</div>
于 2013-01-04T03:06:56.003 回答
1

@Mark 感谢您的帮助。我的问题是关于将 CFQUERY 转换为 ANGULAR 可以处理的东西。在 Ben Nadel关于 Angular文章和关于将查询转换为 structs 数组的文章中提供了一点帮助。我把它完成了。

对于那些会发现这个的 CFers 去获取 Ben 的queryToArray。这是一个包含列 firstName、lastName、age 的查询的示例。

<cfscript>
  a = createObject('component','angular');
  getQuery = a.getQuery();
  QueryArray = a.queryToArray(getQuery);
</cfscript>

<script type="text/javascript"> 
  var theQuery = <cfoutput>#serializeJSON(QueryArray)#</cfoutput>;
  function dataLooper($scope){
    $scope.people = theQuery;
  }
</script>

<div ng-controller="dataLooper">
  <div ng-repeat="person in people">
  {{person.FIRSTNAME}} - {{person.LASTNAME}} - {{person.AGE}}<br>
  </div>
</div>

我希望这对正在尝试学习 Angular 的其他人有所帮助!

于 2013-01-04T18:18:08.763 回答