私は最初のAngularJSアプリケーションに問題があります。私はヨーマンジェネレータを使用しています。私はjsonファイルからデータを取得し、オブジェクトの配列の長さをチェックする必要があります。jsonファイルから適切なデータを取得できませんAngularJS
マイdata.jsonファイル:
{"persons":[
{
"firstname":"Christian",
"lastname":"Bower",
"age":21
},
{
"firstname":"Anthony",
"lastname":"Martial",
"age":25
}
]}
マイ角度コントローラ:
'use strict';
/**
* @ngdoc function
* @name webdevApp.controller:DataTableCtrl
* @description
* # DataTableCtrl
* Controller of the webdevApp
*/
angular.module('webdevApp')
.controller('DataTableCtrl', function ($scope, $http) {
this.awesomeThings = [
'HTML5 Boilerplate',
'AngularJS',
'Karma'
];
$http.get('../data.json').success(function(data){
$scope.Data = data;
$scope.namePerson = $scope.Data.persons[0].firstname;
});
console.log($scope.namePerson);
console.log($scope.Data.length);
});
コンソール出力:
1)不定
2)はTypeError:新しい
次の質問で未定義 のプロパティ「長さ」を読み取ることができませんです - どのように私は)以下のように(オブジェクトの配列効果を達成することができますか?
$scope.persons = [
{
"firstname": "christian",
"lastname": "bower",
"age": 21
},
{
"firstname": "anthony1",
"lastname": "martial",
"age": 25
}];
ありがとうございました!私は内部ですべての操作を行う必要があります。変数を外部で使用するにはどうすればよいですか? .hasOwnPropertyメソッドは配列項目を数える最も簡単な方法でしょうか? – XingD123
@ XingD123、はい、あなたの非同期呼び出し結果に何をしても、それは 'success'ハンドラ(データがロードされた後の意味)で行います。配列項目の数を取得するには、 'length'プロパティを使います。 –
でも、もし私が$ scope.getData = funcion(){$ http.get()....}のようなことをして、後でgetData()関数を呼び出す必要があるのであれば?スクリプト全体で変数に到達する別の方法がありますか? – XingD123