コントローラ内のjsオブジェクトで配列のサイズを取得する際の問題
-
21-12-2019 - |
質問
私は私のコントローラで取得しているいくつかのデータのサイズを取得したい-私は次のコードを試してみました;どちらも新しい Object.size
関数を取得しようとしました length
プロパティを直接介して .length
$scope.book = DataService.getBooks();
console.log($scope.book);
-- this function was only added to try and solve the problem.
Object.size = function(obj) {
var size = 0, key;
for (key in obj) {
if (obj.hasOwnProperty(key)) size++;
}
return size;
};
console.log(Object.size($scope.book['value']))
console.log($scope.book['value'].length)
ここでは、変数に格納されているものの画像です。あなたが見ることができるように .value
明らかに3つのオブジェクトとaを含む配列です length
プロパティ-これを直接取得できないのはなぜですか?
編集:呼び出し console.log($scope.book['value'].length)
私にこのタイプのエラーを与えます:
TypeError: Cannot read property 'length' of undefined
解決
Scope scope以来。本は約束です、それはあなたのコンソール上で未解決の可能性があります。ログに記録し、タイプエラーを与えます。
だからこのような何かがあなたの問題を解決するはずです
$scope.book.$promise.then(function(){
console.log($scope.book['value'].length);
});
Size関数は、オブジェクトに設定しているが、配列の長さを取得しようとしているため、不要で混乱します。
所属していません StackOverflow