Kategori Arşivleri: Açısal

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

HTTP 406 SharePoint dinlenme bitiş noktaları karşı açısal $http.get kullanırken hata

Güncelleştirme: Marc reklam ndersson bu büyük parça-in haberdar etmek işaret etti.: http://blogs.Office.com/2014/08/13/JSON-Light-support-Rest-SharePoint-api-released/. Bu çok açıklayıcı oldu :).

Bu kadar kötü başlık bir blog yazısı olabilir! Her neyse.

Ben genellikle yapmak tüm-in benim prototipleme karşı bir O365 örneği. Benim kişisel örnek başka birini etkileyen hakkında endişeli olmaya gerek yok ben vardır. Bir kenara olarak – ne zaman bizim laptoplarda MOSS ile– sanal makineleri taşınan arayacağız SQL Server hatırlıyorum, IIS, Hyper-V vs karar verme. VMWare? Her neyse...

Bu ortamda açısal kullanarak bir uygulama geliştirmişti., diğer şeyler arasında, Bu:

$http.get(serverUrl)
.başarı(işlevi(veri, durumu, başlıkları, config) {

var getLinksResponse = veri;

getLinksResponse.value.forEach(işlevi(Result) {

// ve benzeri ve çok saçma

Bu sadece iyi iki farklı SharePoint çevrimiçi ortamlarda çalışıyordu. Ancak, Ne zaman benim meslektaşım Cloudshare örneğine taşıdık, o was getting bir HTTP 406 hata (Bu aldığım ilk kez neydi, Bu yüzden... yay, Sanırım). Biraz araştırma yaptım ve "Kabul ediyorum" başlık kapalı olduğunu fark ettim. SharePoint online ile gayet mutlu:

Kabul etmek: uygulama/json

Ama cloudshare örneği (prem üzerinde SP hangisi, sanal sunucuda barındırılan) Klasik istedim "odata = verbose" de eklendi:

Kabul etmek: uygulama/json;Odata = verbose

Bunu düzeltmek için, Bu başlığı eklendi:

config var = {başlıkları: {
'Kabul': ' uygulama/json;Odata = verbose'
}
};

$http.get(serverUrl,config)
.başarı(işlevi(veri, durumu, başlıkları, config) {

var getLinksResponse = veri;

getLinksResponse.value.forEach(işlevi(Result) {

// ve benzeri ve çok saçma

Bu var kurtulun 406, Ama aynı zamanda yanıt biçimi değişti. Daha fazla... ayrıntılı. (haha!) Daha fazla değişiklik gerekli ve nihai sonuç:

config var = {başlıkları: {
'Kabul': ' uygulama/json;Odata = verbose'
}
};

$http.get(serverUrl,config)
.başarı(işlevi(veri, durumu, başlıkları, config) {

var getLinksResponse = veri;

getLinksResponse.d.results.forEach(işlevi(Result) {

// ve benzeri ve çok saçma

Bu sadece içine açık bir 30 bizim için dakika sorun, Biz dışarı lucked. Umarım kimse bu yararlı bulur.

</sonunda>

Nasıl yapılır: Aynı sayfada birden çok açısal SharePoint Web bölümleri etkinleştir

Bu blog Mesaj açıklar nasıl çoklu olabilir Angular.js dayalı SharePoint web bölümleri (İçerik Düzenleyici web bölümü başvurulan) aynı sayfada. İçerik Düzenleyici web bölümü arıyorum (CEWP) JavaScript bir "açısal Web Bölümü" Angular.js framework ile oluşturulan referanslar

Açısal'ın önyükleme işlemi çok kolaydır ve her örnek Internets üzerinde bulmak böyle devam ediyor:

<HTML ng-app 'Uygulamam' =>

<blah /><blah /><blah />

</HTML>

Bu yıkar, Ancak, birden çok CEWP'ın aynı sayfa üzerinde birden fazla açısal web bölümü temsil eden etkinleştirmek istiyorsanız. Açısal yalnızca otomatik olarak ilk ng-uygulama yönergesi karşı bu buluntular bootstrap – En azından açısal sürüm itibaren 1.3.6. Çözüm oldukça basit-el ile kodunuzu yerine bootstrap. Şimdi böyle bir şey için yukarıdaki değiştirir:

<vücut>
<d
IV kimliği =”bootstrapHere” NG-controller =”myController theController olarak”>
<blah /><blah /><blah />
</div>
</vücut>

<script src =”//Ajax.googleapis.com/Ajax/libs/angularjs/1.3.6/angular.js”></komut dosyası>

<komut dosyası>
angular.Bootstrap(angular.Element(Document.getElementById(“bootstrapHere”)),['Uygulamam']);
</komut dosyası>

Temelde, NG-app öğesinde, önyükleme yapmak için kullanmak yerine, Bu öğenin üzerine bir kimlik tokat. O zaman, bootstrap kullanın() açısal yöntemi kendisi önyüklemesi denetlemek için çalışma zamanında işlemek. Ive'sınav bu aynı sayfada üç farklı açısal web bölümleriyle ve o inşaat a çekicilik.

</sonunda>

undefinedBenim blog abone.

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