質問

私は私のコントローラで取得しているいくつかのデータのサイズを取得したい-私は次のコードを試してみました;どちらも新しい 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 プロパティ-これを直接取得できないのはなぜですか?

enter image description here

編集:呼び出し 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関数は、オブジェクトに設定しているが、配列の長さを取得しようとしているため、不要で混乱します。

ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top