我正在從我的後端接收一個字符串數組數組。 (Java - CXF-RS)對於陣列內部對象ng-repeat
字符串數組中的數組大小從1到n不等。要在我的前端閱讀並填充它,我正在使用ng-repeat。
除了一個條件,一切正常。如果任何字符串數組中只有一個數據,它將作爲Object接收。因此,ng-repeat對於這些條件是失敗的。
是否有解決此問題的解決方法?
我正在從我的後端接收一個字符串數組數組。 (Java - CXF-RS)對於陣列內部對象ng-repeat
字符串數組中的數組大小從1到n不等。要在我的前端閱讀並填充它,我正在使用ng-repeat。
除了一個條件,一切正常。如果任何字符串數組中只有一個數據,它將作爲Object接收。因此,ng-repeat對於這些條件是失敗的。
是否有解決此問題的解決方法?
最好的選擇是強制服務器每次都返回一個數組。如果這是不可能的,你可以檢查,如果返回的數據是使用一個數組: angular.isArray()
https://docs.angularjs.org/api/ng/function/angular.isArray
,如果不是的話,那麼數據推到陣列的ngRepeat使用。
僞代碼:從服務器 2.在成功回調 1.獲取數據初始化數組 3.如果返回的數據陣列,將其分配給您的陣列 4.如果不是,然後將數據推送到您的陣列。
$http.get('url', function(data) {
$scope.items = [];
if(angular.isArray(data) {
$scope.items = data;
} else {
$scope.items.push(data);
}
});
我還沒有檢查語法錯誤此位的代碼或LINTED它。這只是給你一個想法。
採取了這個想法,它的工作就像一個魅力!謝謝! – user3359041
改變你的後端,所以它只返回一個數組。 – Hatsjoem
如果你不能改變你的後端,然後在響應後將其轉換爲數組。 – Anoop
是的,我已經這樣做了,但我想知道這是否是正確的方式,或者如果有更好的方法。 – user3359041