Açısal yönergelerinin LNB'ler ipucu (Veya, Tire her yerde tekrar sevmeyi öğrenmek)

I-si olmak birkaç apps o yapmak $http.get() aramalar ve çirkin hata bilgi gizli güzel biçimlendirilmiş bir hata iletisi göstermek için güçlü olmak istedim., Ama erişilebilir.  Temelde, Bu:

image

Ve sonra Eğer üzerinde hata tıkladığında, bilgi daha fazla görmek:

image

Basit bir şey.  Beri aynı potansiyel hata yönetici ekranı olarak son kullanıcının ekran görünebilir, açıkça özel açısal yönergesi için aradı.  BEN  Bunu buldum En iyi dizisi Makaleler (http://weblogs.asp.net/dwahlin/creating-custom-angularjs-directives-part-i-the-fundamentals) büyük Dan Wahlin.  Tabi onun tavsiye, Çok hızlı bir şekilde oluşturulan bir <Merhaba Dünya> yönerge ve taşınan üstünde-e doğru benim daha karmaşık hata ekranı camsil. Biraz belaya daha karmaşık bu yönerge ile karşılaştım.  Sonsuza dek mutlu, şans eseri sayılır, WebStorm söylemişti. (Bu gün kullanmak editörü) JS dosyasının açısal bir dosya olduğunu ve o yardımcı beni sayı rakam.  Bu yönergenin kodudur:

angular.Module("CDLApp").yönergesi("generalCdlErrorHandler", işlevi() {

geri dönmek {
kısıtlamak: "E",
Değiştir: TRUE,

kapsam: {
retrieveLastConfigurationError: "&"
},

Şablon:
'<div class = "uyarı-tehlike uyarısı" rolü "uyarı =" NG-init = "doShowExpandedErrorDetails = true" NG-show "retrieveLastConfigurationError =()">' +
' Bir g/ç hatası ya da başka bir hata yapıldı.. Yapılandırma veri dosyası değil olabilir, çünkü bu genellikle olur. ' +
' bulunamadı veya hatalı bilgi yapılandırma dosyası içeriyor (başvuran bir belge kitaplığı gibi ' +
' Bu mevcut değil).' +
' <br />' +
' <div ng-show "doShowExpandedErrorDetails" =>' +
' <bir href = "#" NG tıklayın = "doShowExpandedErrorDetails = ! doShowExpandedErrorDetails">' +
'Ayrıntıları gizlemek için burayı tıklatın.' +
' </bir>: ' +
' <br />' +
' <Pre>{{retrieveLastConfigurationError() | JSON}}</Pre>' +
' <br />' +
' </div>' +
' <div ng-show = "!doShowExpandedErrorDetails">' +
' <bir href = "#" NG tıklayın = "doShowExpandedErrorDetails = ! doShowExpandedErrorDetails">' +
'Hata ayrıntılarını genişletmek için burayı tıklatın.' +
' </bir>' +
' </div>' +
'</div>'
};
});

Temelde, "GeneralCdlErrorHandler" adlı yeni bir öğe oluşturmak değilim.  RetrieveLastConfigurationError adında bir işlevi erişmesi ve bu kapsam nesne işlenir.  Ben muhtemelen sadece üst kapsam kullanılmış olabilir, Ama bu tembel geldi.  Eğer başka kimse bunu yapmalıydık, Bu konuda yorum duymak isteriz..

Bu her şey çok güzel, Ama bir şey elde değildi.  Konsol hiçbir hata çıktı (en az bir kez, ben yol boyunca oluşturulan tüm sx hataları sabit).  Ben sadece herhangi bir çıktı yönergesi alamadım.  Gittim ve bir statik metin ng-show yönergesi ve önce eklendi * mi * olsun. Bu beni belki direktif örtülü olarak "doShowExpandedErrorDetails" gibi yeni vars oluşturmak veya bir "ng-init" olması için izin verilmedi ki orada düşündürdü. 

Eğer bir tür ile bu kez WebStorm bana yardımcı oldu görmek için HTML içine döndü.  Ben böyle retrieveLastConfigurationError işlevinde geçen:

<General cdl hata işleyicisi retrieveLastConfigurationError="CDLController.retrieveLastConfigurationError()">
</General cdl hata işleyicisi>

Ama bu gerçekten bu olması gerekiyordu:

<General cdl hata işleyicisi Al-son-yapılandırma-hata "CDLController.retrieveLastConfigurationError =()">
</General cdl hata işleyicisi>

WebStorm anavatanına bağlı zorunda olduğunu bilecek kadar akıllı.  Bu ipucu verdiyse yoktu, Ben muhtemelen hala bu sorun giderme Gülümseme.  Eğlenceli kez!

İşin sırrı budur.: Sadece yönerge öğesi adı hecelerine bölünen, Yani sen eklemek herhangi bir özniteliktir.  Bir keresinde tire ekledi, o tüm amele büyük.  Dan'in öğretici kısa tek isimleri için oldu., Bu yüzden bağlantı yapmak değil.

Bu kimse yardımcı olur.

</sonunda>

undefinedBenim blog abone.

Heyecan beni izleyin http://www.twitter.com/pagalvin

Cevap bırak

E-posta hesabınız yayımlanmayacak. Gerekli alanlar işaretlendi *