de-vraag
  • Pertanyaan
  • Tag
  • Pengguna
Notifikasi
Imbalan
Registrasi
Setelah Anda mendaftar, Anda akan diberitahu tentang balasan dan komentar untuk pertanyaan Anda.
Gabung
Jika Anda sudah memiliki akun, masuk untuk memeriksa pemberitahuan baru.
Akan ada hadiah untuk pertanyaan, jawaban, dan komentar tambahan.
Lebih
Sumber
Sunting
Oleg Belousov
Oleg Belousov
Question

Apa 'murah' kinerja-bijaksana $broadcast atau $jam tangan

Saya memiliki situasi di aplikasi saya di mana saya harus reload menu setiap kali peran pengguna perubahan(salah Satu pengguna dapat memiliki peran di beberapa perusahaan).

Aku bertanya-tanya apa adalah cara terbaik untuk mendekati masalah ini.

saat ini saya melakukan hal-hal berikut:

app.controller('menuLoadingCtrl', function($location, $scope, authService){
    $scope.model.initialRole = authService.getRole();
    $scope.$watch(function(){return authService.getRole()}, function(val){
        if(val && val != $scope.model.initialRole){
                $scope.layout.menuSrc = 'partials/menu.html';
        }
    });
})

Sederhana mengarahkan pengguna ke menu loading melihat, dan dari sana, kembali ke tampilan menu setelah peran ini dilakukan loading. Aku punya ini dibungkus dalam sebuah fungsi:

 $scope.layout.reloadMenu = function(){
        $scope.layout.menuSrc = 'partials/menuLoading.html';
    }

yang saya sebut di setiap skenario di mana saya ingin reload menu.

Aku bertanya-tanya jika saya dapat membuat proses ini lebih otomatis dengan penyiaran acara ini dari layanan pada $rootScope, dan kemudian mendengarkan itu di controller.

Setiap pikiran\saran ini akan sangat dihargai.

42 2013-10-27T09:28:23+00:00 1
Oleg Belousov
Oleg Belousov
Pertanyaan edit 27 Oktober 2013 в 9:34
Pemrograman
angularjs
Solution / Answer
 Blackhole
Blackhole
27 Oktober 2013 в 9:38
2013-10-27T09:38:18+00:00
Lebih
Sumber
Sunting
#22633275

$watch() adalah melakukan kotoran-pemeriksaan: fungsi membuat perbandingan yang masing-masing mencerna siklus. Di sisi lain, $broadcast() menjalar acara hanya ketika ada satu. Tentu, $broadcast() lebih murah dari $watch().

Tapi apakah anda benar-benar perlu khawatir tentang kinerja di sini? Satu primitif dibandingkan dengan siklus yang ada. Namun, secara konseptual, $watch() jelas apa yang anda butuhkan: anda ingin melakukan suatu tindakan setiap kali perubahan variabel. Saya dapat't bayangkan menggunakan $broadcast() di sini.

 Nelu
Nelu
Jawaban edit 17 April 2017 в 3:10
53
0
Related communities 1
Angular Indonesia
Angular Indonesia
3 498 pengguna
Framework web development aplikasi web dan mobile https://angular.io/ Facebook Group https://www.facebook.com/groups/462764390497214/ Github Repo Angular ID https://github.com/angular-indonesia Medium Angular Indonesia https://medium.com/angularid
Buka telegram
Tambahkan pertanyaan
Kategori
Semua
Teknologi
Budaya / Rekreasi
Kehidupan / Seni
Ilmu Pengetahuan
Profesional
Bisnis
Pengguna
Semua
Baru
Populer
1
UbiBot UK
Terdaftar 15 jam yang lalu
2
Галина Утяшова
Terdaftar 1 hari yang lalu
3
Asilbek Qadamboyev
Terdaftar 4 hari yang lalu
4
Akshit Mehta
Terdaftar 1 minggu yang lalu
5
me you
Terdaftar 1 minggu yang lalu
ID
KO
RU
© de-vraag 2022
Sumber
stackoverflow.com
di bawah lisensi cc by-sa 3.0 dengan atribusi