2013-10-28 118 views
3

我要分配NG-網格列動態名稱後,從數據庫返回的值,但問題是它從阿賈克斯數據返回之前得到初始化,我不能夠回憶起gridOption所以它顯示balnk ,所以請幫助我,我們如何構建一個由ajax返回值的列名。動態columnDef NG-電網

$scope.gridOptions = 
     { 
      data: 'data.Values', 
      columnDefs: 
      [ 
        { field: "ID", displayName: "Record Id" }, 
        { field: "Value", displayName: $scope.ColumnName, cellFilter: cellfilterType },      
     ], 

     }; 

其中$scope.ColumnName從下面陸續上馬......

RecordService.getRecords().then(function (data) { 
    $scope.ColumnName= data.something; 
} 

感謝

+0

你能發佈HTML部分? –

+0

是肯定的,

freedom

+0

它不是你的HTML,但一行。編輯您的文章並添加完整的HTML。感謝 –

回答

9

感謝最大的幫助,我與按以下步驟進行幫助columnDef這

步驟1:

$scope.colDef = []; 

第2步:

RecordService.getRecords().then(function (data){  
    $scope.colDef=["CoulumnName":data.something]  
} 

第3步:

$scope.gridOptions = { 
    data: 'data.UdiValues', 
    columnDefs:'colDef',    
    filterOptions: $scope.filterOptions 
}; 
+0

太棒了![定義列](https://github.com/angular-ui/ng-grid/wiki/Defining-columns)解釋說您可以爲columnDefs使用一個字符串,並且nggrid會綁定到該$ scope屬性 –

+1

我認爲在第二步中應該有'colDef'而不是'columnDefs ',不是? – Tomato

1

試圖設置第一個 「默認」 值,並承諾改變之後

$scope.gridOptions = 
     { 
      data: 'data.Values', 
      columnDefs: 
      [ 
        { 
        field: "ID", 
        displayName: "Record Id" 
        }, 
        { field: "Value", 
         displayName: "default", 
         cellFilter: cellfilterType 
        },      
     ]  
     }; 

而且現在:

RecordService.getRecords().then(function (data) { 
    $scope.gridOptions.columnDefs[1].displayName = data.something; 
} 

的服務因此RecordService回報的承諾,我們創造的承諾工廠,如:

.factory('RecordService', ['$resource','$q', function($resource, $q) { 
    var data = { something: "from service" } ; 

     var factory = { 
      getRecords: function (selectedSubject) { 
       var deferred = $q.defer();    
       deferred.resolve(data); 
       return deferred.promise; 
      } 
     } 
     return factory; 
}]); 

演示Fiddle

+0

感謝答覆最多,但同樣的問題again..it設置爲列名「默認」。不是新的: – freedom

+0

我試圖在plunker重現它,請發佈完整的HTML或您加載gridOptions –

+0

看到我的編輯我張貼,希望它會幫助 –

0

喜歡的東西 this

返回JSON,玩,用GET映射爲字符串等?

0

我已經做了這樣的事情: -

self.gridOptions.columnDefs = columnDefs(colDef,displayNames); 

columnDef是: -

var columnDefs = function(data,cd){ 
     var colDef= []; 
     var mi = null; 
     var colByOrder = sortedByOrder(data); 
     for(var i=0 ; i < colByOrder.length ; i++){ 
      colDef.push({ 
       width: width, 
       field: String(colByOrder[i][1].position), 
       menuItems: menuItems(this), 
       displayName: cd[colByOrder[i][1].position], 
       enableSorting: false, 
       type: 'string', 

      }); 
     } 
     return colDef;   
    };