Khi mở templates, trang web tự load danh sách mà không phải nhấp button để kích hoạt

Chào các bạn, hiện tại mình đang tìm tòi về AngularJS. Mình có một thắc mắc mong các pro giúp đỡ.
Mình có 1 templates dùng để hiển thị một danh sách sinh viên. Để hiển thị được danh sách sinh viên đó thì mình dùng button và ng-click để kích hoạt hàm select sinh viên trong cơ sở dữ liệu. Cái mình đang muốn là khi mở templates nó sẽ tự load danh sách mà mình ko phải nhấp button đễ kích hoạt. Mong được giúp đỡ. Mình cám ơn.

Cứ cập nhật thẳng data trong controller của template. Khi init, nó sẽ tự load danh sách.

1 Like

Nếu chú làm dạng single page, sử dụng routeProvider có thể tìm hiểu resolve

// route-config.js
angular
    .module('app')
    .config(config);

function config($routeProvider) {
    $routeProvider
        .when('/avengers', {
            templateUrl: 'avengers.html',
            controller: 'AvengersController',
            controllerAs: 'vm',
            resolve: {
                moviesPrepService: function(movieService) {
                    return movieService.getMovies();
                }
            }
        });
}

ref: https://github.com/johnpapa/angular-styleguide/blob/master/a1/README.md

1 Like

dùng ng-init đi bạn. resuse lại function :smiley:

Trong controller của template đó bạn viết 1 hàm đó, và gọi nó luôn. Như thế này:

myModule.controller('myController', ['$scope', 'myService', function($scope, myService){

function loadData()
{
myService.selectStudent().then(function(){
//do something here
})
}

loadData();
}])
1 Like

Cám ơn các bạn nhiều lắm, sau nhiều ngày mò mẫm gợi ý của các bạn mình củng đã làm được. Thanks all

83% thành viên diễn đàn không hỏi bài tập, còn bạn thì sao?