Büyük bir denetleyicide, veri tabanından veriye güveniyorum. Bu veri, durum tanımı içinde resolve
kullanılarak alınır. Ancak, nadir ve özel durumlarda, ana veritabanından veri yoktur ve başka bir veritabanından varsayılan verileri kullanmam gerekir (yüklenmesi biraz zaman alır). Elbette, hiçbir şekilde, varsayılan veriler her seferinde yüklenmelidir, ancak sadece bu nadir durumlarda, bu gereklidir. Bu nedenle, varsayılan tanımı resolve
'u kullanarak durum tanımında yükleme seçeneği yoktur, bence.Yalnızca özel durumda eşzamansız olarak doldurulan değişken
Yani, basit bir if-else-deyimini kullanmam gerekiyor, yalnızca varsayılan verileri resolve
tarafından getirilen "normal" veriler başarıyla yüklenmemişse almam gerekiyor. Varsayılan veriler daha sonra geri arama ile bir servis fonksiyonu ile alınır. Benim geçerli kod böyle benziyor: Ben asenkron davranışı ile derde çalıştırıyorum çünkü
if (dataLoadedViaResolve.success){
$scope.myMainVariable = dataLoadedViaResolve;
} else {
myService.getDefaults(function(data){
$scope.myMainVariable = data;
});
}
// Do a lot of things with $scope.myMainVariable in hundreds of lines of code
, bu, işe yaramaz. Burada bir söz kullanması tavsiye edildi, ancak tüm sözler bana else
ifadesinin içine koyacağınız kodu koymak için başka bir tür geri arama fonksiyonu ile bana sağlayacaktır. Ancak, bu, tüm denetleyiciyi (bu da beni biraz sıkıntıya sokacak olan) yeniden hesaplamak anlamına geliyordu.
else
deyimi içine doldurulan ediliyor $scope.myMainVariable
kadar komut bekleme yürütülmesini yapmak için zarif bir yolu var mı ve sonrasında else
deyimi dışında $scope.myMainVariable
kullanılır?
Eğer kumanda içinde tüm fonksiyonunun daha kod parçacığını sağlayabilir? sadece if-else durumu değil. –