Aylık Arşivler: Ocak 2015

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