3

cfバックエンドを使用してAngularJSを調べようとしています

getIndexという通常のcfqueryをプルする次のコードがあります。このコードは、それぞれ5行の列(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がオブジェクトではなくArrrayを探しているためだと思います。よくわかりませんが、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

@マーク助けてくれてありがとう。私の質問は、CFQUERYをANGULARが処理できるものに変換することについて具体的に説明しました。Angularに関するBenNadelの記事と、クエリを構造体の配列に変換することに関する記事の助けを借りて。完成しました。

これを見つけるCFerについては、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 に答える