在页面加载时使用AngularJS将json绑定到HTML表

Dan*_*Dan 8 angularjs

我有一个简单的概念验证,我用它来学习一些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>
Run Code Online (Sandbox Code Playgroud)

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;
        });

    };

}
Run Code Online (Sandbox Code Playgroud)

这里有一个小提琴:http://jsfiddle.net/TUJ9D/

这很好用; 当你点击链接时,它会调用'loadPeople'并将json拉入表中.但是,我想要做的是在页面加载时绑定它,因此用户无需手动单击链接即可查看表中的数据.

我想知道最好的办法是什么?Instinct告诉我在页面加载时使用jquery调用该函数,但后来我不知道这是一个好的方法还是Angular能否以更好的方式做到这一点.

谢谢大家.

Bet*_*aba 6

只需调用控制器中的加载功能即可.

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;
        });

    };

    $scope.loadPeople();
}
Run Code Online (Sandbox Code Playgroud)

http://jsfiddle.net/TUJ9D/1/