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
Lepaskan: 2024-11-29 01:19:11
asal
432 orang telah melayarinya

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
});
Salin selepas log masuk

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;
    }
}
Salin selepas log masuk

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!

sumber:php.cn
Kenyataan Laman Web ini
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
Artikel terbaru oleh pengarang
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan