ngGrid是否提供了一種以編程方式隱藏其列的方法。我的計劃是迭代數據並將某些列(無數據)的可見性設置爲false。這是可行的嗎?有沒有解決方法?ng-grid動態地隱藏沒有數據的列
任何幫助將不勝感激。
更新:所以@mainguy讓我有一部分的方式,我能夠找出其他問題。對於其他可能會遇到此問題的人,他們希望做同樣的事情;這裏是鏈接到另一個問題,也幫助我。 how to hide/show ng-grid column externally?
ngGrid是否提供了一種以編程方式隱藏其列的方法。我的計劃是迭代數據並將某些列(無數據)的可見性設置爲false。這是可行的嗎?有沒有解決方法?ng-grid動態地隱藏沒有數據的列
任何幫助將不勝感激。
更新:所以@mainguy讓我有一部分的方式,我能夠找出其他問題。對於其他可能會遇到此問題的人,他們希望做同樣的事情;這裏是鏈接到另一個問題,也幫助我。 how to hide/show ng-grid column externally?
你可以做到這一點與此(醜陋的)代碼:
// main.js
var app = angular.module('myApp', ['ngGrid']);
app.controller('MyCtrl', function($scope) {
$scope.myData = [{
name: "Moroni",
age: 50,
value: ""
}, {
name: "Tiancum",
age: 43,
value: ""
}, {
name: "Jacob",
age: 27,
value: ""
}, {
name: "Nephi",
age: 29,
value: ""
}, {
name: "Enos",
age: 34,
value: ""
}];
$scope.incl_names = false;
$scope.incl_ages = false;
$scope.incl_values = false;
$scope.filtered = [];
//first loop: find empty columns
angular.forEach($scope.myData, function(row) {
if (row.name != "") {
$scope.incl_names = true;
}
if (row.age != "") {
$scope.incl_ages = true;
}
if (row.value != "") {
$scope.incl_values = true;
}
});
//second loop: build new array
angular.forEach($scope.myData, function(row) {
var build = [];
if ($scope.incl_names) {
build.name = row.name;
}
if ($scope.incl_ages) {
build.age = row.age;
}
if ($scope.incl_values) {
build.value = row.value;
}
$scope.filtered.push(build);
});
$scope.gridOptions = {
data: 'filtered'
};
});
此檢查在第一循環的列是空的,並設置了一些布爾值。然後在第二個循環中,根據開關創建一個新數組,然後告訴ng-grid使用新數組。
當然,這對25列以上的用戶來說並不是很有趣,如果你的網格中有columnDefs,你也可能遇到問題。
無論如何,試試吧here。只需在json的最後一列(值)中輸入一個值即可。
老兄!你真棒!我的網格中有columDefs,但你確實指向了正確的方向,所以我認爲我可以開發一個解決方案。非常感謝!!!!! @mainguy 順便說一句,感謝您的快速響應。 – ilndboi 2014-10-07 15:19:54
只是不要在columnDefs中包含沒有數據的列。或者更具體地說明你的問題。 – mainguy 2014-10-03 14:34:01
對不起!我應該更具體。我有一組25個預定義的列。數據動態填充列,所以我不知道哪個列將有數據,直到查詢返回結果。 @mainguy – ilndboi 2014-10-07 13:54:58