فئة المحفوظات: الزاوي

نصيحة مبسطة لحل المشاكل لتوجيهات الزاوي (أو, تعلم الحب الواصلات في جميع أنحاء مرة أخرى)

لدى بضعة من تطبيقات هذا جعل $http.get() المكالمات، وتريد أن تكون قادرة على إظهار رسالة خطأ تنسيق جيد مع تفاصيل الخطأ القبيح المخفية, ولكن يمكن الوصول إليها.  أساسا, وهذا:

image

ومن ثم إذا كان المستخدم بالنقر فوق الخطأ, أنها رؤية مزيد من المعلومات:

image

الأشياء البسيطة.  حيث يمكن أن تظهر الضبط نفس الخطأ المحتملة في الشاشة الإدارية فضلا عن شاشة المستخدم النهائي, ودعا وضوح توجيه زاوي مخصصة.  أنا  وجدت هذا سلسلة المعلقة من المقالات (http://weblogs.asp.net/dwahlin/creating-custom-angularjs-directives-part-i-the-fundamentals) قبل الكبير دان فلين.  اتباع نصيحته, أنا خلقت بسرعة كبيرة <مرحبا--العالم> التوجيه وتم نقله إلى بلدي ممسحة عرض خطأ أكثر تعقيداً. أنا واجهت قليلاً من المتاعب مع هذا التوجيه أكثر تعقيداً.  لحسن الحظ, نوع من طريق الصدفة, وقد قلت ويبستورم (محرر استخدام في هذه الأيام) أن كان الملف شبيبة ملف زاوي وأنها ساعدت لي معرفة المسألة.  هذا هو الرمز للتوجيه نفسها:

angular.module("كدلاب").التوجيه("جينيرالكدليرورهاندلير", الدالة() {

عودة {
تقييد: "هاء",
استبدال: صحيح,

نطاق: {
ريتريفيلاستكونفيجوراتيونيرور: "&"
},

قالب:
'<div class = "تنبيه تنبيه خطر" دور = "تنبيه" الحرس الوطني-init = "دوشوويكسبانديديرورديتايلس = true" الحرس الوطني-عرض = "ريتريفيلاستكونفيجوراتيونيرور()">' +
' وكان هناك خطأ في الإدخال/إخراج أو غيرها خطأ. يحدث هذا عادة لأنه لا يمكن أن يكون ملف بيانات التكوين ' +
' العثور على أو ملف التكوين يحتوي على معلومات غير صحيحة (مثل الرجوع إلى مكتبة مستندات ' +
' غير موجود).' +
' <br/>' +
' <div نغ-إظهار = "دوشوويكسبانديديرورديتايلس">' +
' <href = "#" الحرس الوطني-انقر فوق = "دوشوويكسبانديديرورديتايلس = ! دوشوويكسبانديديرورديتايلس ">' +
'انقر هنا لإخفاء التفاصيل'. +
' </أ>: ' +
' <br/>' +
' <ما قبل>{{ريتريفيلاستكونفيجوراتيونيرور() | json}}</ما قبل>' +
' <br/>' +
' </div>' +
' <div نغ-إظهار = "!دوشوويكسبانديديرورديتايلس ">' +
' <href = "#" الحرس الوطني-انقر فوق = "دوشوويكسبانديديرورديتايلس = ! دوشوويكسبانديديرورديتايلس ">' +
'انقر هنا لتوسيع تفاصيل الخطأ'. +
' </أ>' +
' </div>' +
'</div>'
};
});

أساسا, أنا إنشاء عنصر جديد يسمى "جينيرالكدليرورهاندلير".  أنه يحتاج إلى الوصول إلى دالة تسمى ريتريفيلاستكونفيجوراتيونيرور والتي يتم التعامل معها في كائن نطاق.  ربما يمكن فقط استخدمت نطاق الأصل, ولكن أن يشعر كسول.  إذا كان أي شخص يعتقد أن قد فعلت ذلك, أنا أحب أن أسمع عنه في التعليقات.

وهذا كان كل شيء على ما يرام, ولكن لم يكن في الحصول على أي شيء.  لا الأخطاء التي برزت في وحدة التحكم (أنا ثابت على الأقل مرة واحدة كل أخطاء sx أنشئت على طول الطريق).  أنا ببساطة لم يحصل أي إخراج من التوجيه.  ذهب، وإضافة بعض النص الثابت قبل التوجيه إظهار نغ، و * هل * الحصول على أن. هذا جعلني أعتقد أنه ربما لم يكن يسمح التوجيه ضمنياً إنشاء فأر جديدة مثل "دوشوويكسبانديديرورديتايلس" أو يكون "نغ init" هناك. 

عدت إلى HTML لمعرفة إذا كان نوع وهذا الوقت ويبستورم ساعدني خارجاً.  وقد تم تمرير أنا في الدالة ريتريفيلاستكونفيجوراتيونيرور مثل هذا:

<retrieveLastConfigurationError="CDLController.retrieveLastConfigurationError cdl العامة-معالج خطأ()">
</العامة cdl معالج خطأ>

ولكن كان هناك حاجة فعلا أن يكون هذا:

<العامة-cdl-خطأ-معالج استرداد-الأخيرة-التكوين-خطأ = "CDLController.retrieveLastConfigurationError()">
</العامة cdl معالج خطأ>

ويبستورم كان ذكيا بما يكفي أن نعرف أنه كان عليها أن يكون تطبيق الواصلة.  إذا لم أكن قد قدمت هذا التلميح, أنا سوف ربما يكون لا يزال استكشاف الأخطاء وإصلاحها وهذا ابتسامة.  أوقات المرح!

هذا خدعة: ليس فقط هو اسم عنصر التوجيه بالواصلة, هكذا هي سمات أي يمكنك إضافة إلى ذلك.  بمجرد أضفت الواصلات, كل شيء عملت كبيرة.  حدث تعليمي دان استخدام أسماء قصيرة واحدة, لذا لم أكن جعل الاتصال.

أمل أن يساعد هذا شخص.

</نهاية>

undefinedالاشتراك في بلادي بلوق.

اتبعني على التغريد في http://www.twitter.com/pagalvin

HTTP 406 خطأ عند استخدام $http.get الزاوي ضد SharePoint بقية نقاط النهاية

التحديث: وأشار مارك AD نديرسون هذا قطعة كبيرة من المعلومات: http://blogs.office.com/2014/08/13/json-light-support-rest-sharepoint-api-released/. وهذا ما يفسر الكثير :).

قد يكون عنوان بلوق وظيفة أسوأ من أي وقت مضى! Anyhoo.

عادة القيام به كل من بلدي النماذج ضد مثيل O365. لدى بلدي مثيل شخصية حتى أن ليس لدى لأن تشعر بالقلق إزاء التأثير على أي شخص آخر. بوصفها جانبا--تذكر عندما ندعو يجري حول الأجهزة الظاهرية على كمبيوتر محمول لدينا مع موس – SQL Server, IIS, البت مقابل هايبر-V. أم وير? Anyhoo...

وكان البلدان المتقدمة النمو إلى تطبيق استخدام الزاوي في هذه البيئة أن يفعل, أمور أخرى, وهذا:

$http.get(سيرفيرورل)
.النجاح(الدالة(البيانات, مركز, رؤوس, التهيئة) {

var جيتلينكسريسبونسي = البيانات;

getLinksResponse.value.forEach(الدالة(ثيريسولت) {

// وهكذا، وحتى زبد

وهذا كان يعمل على ما يرام في SharePoint على الإنترنت بيئات مختلفة. ومع ذلك, عندما استدار زميلي إلى مثيل كلودشاري, أنه تم الحصول HTTP 406 خطأ (كانت المرة الأولى حصلت من أي وقت مضى أن أحد, حيث.. ياي, أخمن). ونحن لم قليلاً من البحوث، ولاحظت أن رأس "قبول" قبالة. وكان سعيداً تماما مع SharePoint على الإنترنت:

قبول: تطبيق/json

لكن مثيل كلودشاري (وهو س في بريم, واستضافت في ملقم ظاهري) أراد الكلاسيكية "odata = مطول" وأضاف كذلك في:

قبول: تطبيق/json;odata = مطول

لحل هذه المشكلة, وأضاف نحن الرأس على هذا النحو:

التكوين فأر = {رؤوس: {
'قبول': ' التطبيق/json;odata = مطول '
}
};

$http.get(سيرفيرورل,التهيئة)
.النجاح(الدالة(البيانات, مركز, رؤوس, التهيئة) {

var جيتلينكسريسبونسي = البيانات;

getLinksResponse.value.forEach(الدالة(ثيريسولت) {

// وهكذا، وحتى زبد

التي حصلت على التخلص من 406, بل أنه أيضا تغيير تنسيق الاستجابة. أنه كان أكثر.. مطول. (هاها!) تم إدخال مزيد من التغييرات المطلوبة، وهنا هو النتيجة النهائية:

التكوين فأر = {رؤوس: {
'قبول': ' التطبيق/json;odata = مطول '
}
};

$http.get(سيرفيرورل,التهيئة)
.النجاح(الدالة(البيانات, مركز, رؤوس, التهيئة) {

var جيتلينكسريسبونسي = البيانات;

جيتلينكسريسبونسي.d.results.forEach(الدالة(ثيريسولت) {

// وهكذا، وحتى زبد

وهذا فقط تحولت 30 مشكلة دقيقة بالنسبة لنا, لذا نحن حالفه. نأمل شخص ما يجد هذا مفيدة.

</نهاية>

مقالات إرشادية: تمكين أجزاء الزاوي SharePoint ويب متعددة في نفس الصفحة

هذا بلوق وظيفة يصف كيف يمكن أن يكون لديك متعددة Angular.js على أساس أجزاء ويب في SharePoint (المشار إليه بواسطة جزء ويب محرر المحتوى) في نفس الصفحة. أنني أدعو جزء ويب محرر المحتوى (سوب) أن مراجع جافا سكريبت التي تم إنشاؤها باستخدام إطار Angular.js "جزء ويب زاوي."

عملية الزاوي bootstrap السوبر سهلة ومجرد عن كل مثال تجد على الإنترنت يذهب شيء من هذا القبيل:

<إتش تي أم ال نغ-التطبيق = 'myApp'>

<بلاه/><بلاه/><بلاه/>

</html>

وهذا ينهار, ومع ذلك, إذا كنت تريد تمكين متعددة سوب تمثل أجزاء ويب الزاوي متعددة في نفس الصفحة. الزاوي وسوف فقط تلقائياً bootstrap ضد التوجيه نغ-التطبيق الأول يرى – على الأقل اعتبارا من الإصدار الزاوي 1.3.6. الحل بسيط جداً – bootstrap يدوياً التعليمات البرمجية الخاصة بك بدلاً من ذلك. ما ورد أعلاه الآن يتحول إلى شيء من هذا القبيل:

<الهيئة>
رابعا معرف =”بوتسترافيري” الحرس الوطني-تحكم =”ميكونترولير ثيكونترولير”>
<بلاه/><بلاه/><بلاه/>
</div>
</الهيئة>

<برنامج نصي src =”//ajax.googleapis.com/ajax/libs/angularjs/1.3.6/angular.js”></البرنامج النصي>

<البرنامج النصي>
angular.bootstrap(angular.element(document.getElementById(“بوتسترافيري”)),['myApp']);
</البرنامج النصي>

أساسا, بدلاً من استخدام الحرس الوطني-التطبيق على العنصر للقيام بالبأس الحذاء الخاص بك, يمكنك صفعة معرف على هذا العنصر. ثم, استخدم bootstrap() الأسلوب على الزاوي العملية نفسها السيطرة ألباس الحذاء في وقت التشغيل. لقد اختبرت هذه مع ثلاثة أجزاء ويب الزاوي مختلفة على نفس الصفحة ويعمل السحر.

</نهاية>

undefinedالاشتراك في بلادي بلوق.

اتبعني على التغريد في http://www.twitter.com/pagalvin