2017-01-18 8 views
0

2つのフィールドを角度uiグリッドの1つのフィールドに結合する方法はありますか?角度uiグリッド2列を1つに結合する

私はケースマネージャーの一部が働いていたが、クライアントの一部は、私たちは

columnDefs: [ 
      { name:'firstName', field: 'first-name' }, 
      { name:'1stFriend', field: 'friends[0]' }, 
      { name:'city', field: 'address.city'}, 
      { name:'getZip', field: 'getZip()', enableCellEdit:false} 
     ], 
     data : [  { 
          "first-name": "Cox", 
          "friends": ["friend0"], 
          "address": {street:"301 Dove Ave", city:"Laurel", zip:"39565"}, 
          "getZip" : function() {return this.address.zip;} 
         } 
        ] 

以下のように私たち自身の機能を構築できることの例で見た

CaseServices.getCases().then(function (response) { 
      $scope.gridOptions.columnDefs = [ 
      { name:'Title', field: 'Title' }, 
      { name:'Case Manager', field: 'Case_x0020_Manager.Title' }, 
      { name:'Client', field: 'Client.FirstName' + 'Client.Title'}, 

     ], 
      $scope.gridOptions.data = response.d.results; 
     }); 

が動作していない、以下のコードを試してみましたしかし、私はAJAX呼び出しからの応答を得ているので、data部分($scope.gridOptions.data = response.d.results;)の変更方法がわかりません

これらのいずれかに?それは、角度UIグリッドで利用可能なCaseTemplate機能を使用してオブジェクト配列

$.each(response.d.results,function(){ 
      this.ClientName = this.Client.FirstName + " " + this.Client.LastName; 

     }); 

を変更するこの

を行うには2つの方法があります

+0

(推奨) ajex結果私は単なる配列だと思います。それを元に戻したら、とにかく普通のJS.map、.filterなどで修正することができます。変更した配列をグリッドにバインドして、必要なものを用意する必要があります。 –

+0

ティムに感謝します。配列を解析して再構成する以外に、角度uiグリッドには他の方法はありませんか? –

+0

あるかもしれません。しかし、リストやグリッドを変換するために配列上に標準的なフィルタやマップを走らせることは、非常に標準的な方法です。それは1行または2つのコードしか必要としません。あなたがこの種のものをどのような種類の規則で扱っていても、やる方法を知る価値があります。 –

答えて

0

目的を解決するよう

$scope.gridOptions.columnDefs = [ 
        { name:'Title', field: 'Title' }, 
        { name:'Client', field: 'Client', cellTemplate:'<div>{{row.entity.Client.FirstName + " " + row.entity.Client.Title }}</div>'}, 
       ], 
関連する問題