いくつかのAngularJSを学ぶためのベースとして使用している簡単な概念実証があります。このコードは、次のように HTML テーブルに JSON データを表示します。
HTML:
<div ng-app="myApp">
<div ng-controller="PeopleCtrl">
<p>Click <a ng-click="loadPeople()">here</a> to load data.</p>
<table>
<tr>
<th>Id</th>
<th>First Name</th>
<th>Last Name</th>
</tr>
<tr ng-repeat="person in people">
<td>{{person.id}}</td>
<td>{{person.firstName}}</td>
<td>{{person.lastName}}</td>
</tr>
</table>
</div>
</div>
JS:
var mockDataForThisTest = "json=" + encodeURI(JSON.stringify([
{
id: 1,
firstName: "Peter",
lastName: "Jhons"},
{
id: 2,
firstName: "David",
lastName: "Bowie"}
]));
var app = angular.module('myApp', []);
function PeopleCtrl($scope, $http) {
$scope.people = [];
$scope.loadPeople = function() {
var httpRequest = $http({
method: 'POST',
url: '/echo/json/',
data: mockDataForThisTest
}).success(function(data, status) {
$scope.people = data;
});
};
}
フィドルはこちら: http://jsfiddle.net/TUJ9D/
これはうまく機能します。リンクをクリックすると、「loadPeople」が呼び出され、json がテーブルに取り込まれます。ただし、私がやりたいのは、ページの読み込み時にこれをバインドすることです。そのため、ユーザーはリンクを手動でクリックしてテーブルのデータを表示する必要はありません。
これを行うための最良の方法は何だろうと思いましたか?本能は、ページの読み込み時にjqueryを使用して関数を呼び出すように指示していますが、それが良いアプローチであるかどうか、またはAngular自体がより良い方法でこれを実行できるかどうかはわかりません。
ありがとうございます。