Rumah >hujung hadapan web >tutorial js >Bagaimanakah Saya Boleh Mencegah Kelipan Semasa Peralihan Laluan AngularJS Apabila Mengambil Data?

Bagaimanakah Saya Boleh Mencegah Kelipan Semasa Peralihan Laluan AngularJS Apabila Mengambil Data?

Linda Hamilton
Linda Hamiltonasal
2024-11-29 01:19:11508semak imbas

How Can I Prevent Flickering During AngularJS Route Transitions When Fetching Data?

Melengahkan Perubahan Laluan AngularJS untuk Pengambilan Data

AngularJS menawarkan penyelesaian untuk mengelakkan kelipan semasa peralihan laluan apabila model memerlukan pengambilan data. Teknik ini, sama dengan gelagat Gmail, membolehkan anda menangguhkan paparan laluan baharu sehingga data model yang diperlukan telah diambil.

Resolve Property of $routeProvider

Kuncinya ciri untuk menangguhkan perubahan laluan ialah sifat menyelesaikan yang dikaitkan dengan $routeProvider. Dengan mentakrifkan laluan dengan atribut menyelesaikan, anda menyatakan bahawa data perlu diambil sebelum laluan boleh beralih.

Contoh

Pertimbangkan contoh berikut:

// Define a route with a resolve property
$routeProvider.when('/phones', {
    templateUrl: 'partials/phone-list.html', 
    controller: PhoneListCtrl, 
    resolve: PhoneListCtrl.resolve
});

Atribut resolve merujuk kepada objek di mana anda mentakrifkan fungsi untuk mengambil data. Contohnya:

function PhoneListCtrl($scope, phones) {
    $scope.phones = phones;
    $scope.orderProp = 'age';
}

PhoneListCtrl.resolve = {
    phones: function(Phone, $q) {
        // Deferred object for promise handling
        var deferred = $q.defer();
        
        // Fetch data via Phone service
        Phone.query(function(successData) {
            deferred.resolve(successData); 
        }, function(errorData) {
            deferred.reject(); // Optionally handle errors
        });
        
        return deferred.promise;
    }
}

Janji Tertunda

Janji digunakan untuk mewakili proses pengambilan data tak segerak. Setiap fungsi menyelesaikan mengembalikan janji, dan AngularJS mengumpulkan semua janji ini. Perubahan laluan ditangguhkan sehingga semua janji diselesaikan, memastikan data sedia sebelum memaparkan paparan baharu.

Atas ialah kandungan terperinci Bagaimanakah Saya Boleh Mencegah Kelipan Semasa Peralihan Laluan AngularJS Apabila Mengambil Data?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Kenyataan:
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn