वर्ग पुरालेख: कोणीय

कोणीय निर्देशों के लिए टिप परेशानी-शूटिंग (या, हाइफ़न सब कुछ खत्म फिर से प्यार करने के लिए सीखने)

मैं उस बनाओ $http.get क्षुधा की एक जोड़ी है() छुपे बदसूरत त्रुटि के विवरण के साथ एक अच्छी तरह से स्वरूपित त्रुटि संदेश दिखाने के लिए सक्षम होना करने के लिए कॉल और मैं चाहता था, लेकिन सुलभ।  मूल रूप से, यह:

image

और फिर अगर त्रुटि पर प्रयोक्ता क्लिकें, वे और अधिक जानकारी देखें:

image

सरल सामान।  के बाद से सटीक एक ही संभावित त्रुटि प्रशासनिक स्क्रीन के रूप में अच्छी तरह के रूप में अंत उपयोगकर्ता स्क्रीन प्रकट कर सकते हैं, यह स्पष्ट रूप से एक कस्टम कोणीय निर्देश के लिए कहा जाता है।  मैं  यह पाया गया बकाया श्रृंखला के लेख (http://weblogs.asp.net/dwahlin/creating-custom-angularjs-directives-part-i-the-fundamentals) द्वारा महान डैन Wahlin.  उसकी सलाह का पालन, मैं बहुत जल्दी से निर्मित एक <दुनिया नमस्ते> निर्देशक और मेरी और अधिक जटिल त्रुटि प्रदर्शन squeegee पर ले जाया गया. मैं इस अधिक जटिल निर्देश के साथ परेशानी का एक बिट में भाग गया।  खुशी से, मौका द्वारा की तरह, मैंने WebStorm से कहा था (मैं इन दिनों का उपयोग संपादक) कि जे एस फ़ाइल एक कोणीय फ़ाइल था और यह मेरी मदद की समझ से बाहर मुद्दा।  इस निर्देश के लिए कोड है:

angular.module("CDLApp").निर्देशक("generalCdlErrorHandler", समारोह() {

वापस जाएँ {
प्रतिबंधित करें: "ई",
की जगह: सच है,

स्कोप: {
retrieveLastConfigurationError: "&"
},

टेम्पलेट:
'<div वर्ग = "चेतावनी-खतरे की चेतावनी" भूमिका = "की चेतावनी" एनजी-init = "doShowExpandedErrorDetails = true" एनजी-शो "retrieveLastConfigurationError =()">' +
' वहाँ था एक i/o त्रुटि या अन्य त्रुटि. यह आमतौर पर होता है क्योंकि कॉन्फ़िगरेशन डेटा फ़ाइल नहीं किया जा सकता है ' +
' पाया या कॉन्फ़िगरेशन फ़ाइल में गलत जानकारी है (जैसे कि कोई दस्तावेज़ लायब्रेरी को संदर्भित ' +
' जो मौजूद नहीं है).' +
' <br />' +
' <div एनजी-शो "doShowExpandedErrorDetails" =>' +
' <एक href = "#" एनजी-क्लिक = "doShowExpandedErrorDetails = ! doShowExpandedErrorDetails">' +
'विवरण को छुपाने के लिए यहाँ क्लिक करें।' +
' </एक>: ' +
' <br />' +
' <प्री>{{retrieveLastConfigurationError() | json}}</प्री>' +
' <br />' +
' </div>' +
' <div एनजी-शो = "!doShowExpandedErrorDetails">' +
' <एक href = "#" एनजी-क्लिक = "doShowExpandedErrorDetails = ! doShowExpandedErrorDetails">' +
'त्रुटि विवरण का विस्तार करने के लिए यहाँ क्लिक करें।' +
' </एक>' +
' </div>' +
'</div>'
};
});

मूल रूप से, मैं एक "generalCdlErrorHandler" नामक एक नया तत्व पैदा कर रहा हूँ।  यह retrieveLastConfigurationError नामक एक समारोह के लिए उपयोग की जरूरत है और कि गुंजाइश वस्तु में संभाला है।  मैं शायद सिर्फ माता पिता की गुंजाइश इस्तेमाल किया जा सकता, लेकिन लगता है कि आलसी।  अगर किसी को भी सोचता है कि मैंने किया जाना चाहिए कि, मैं इसके बारे में टिप्पणी में सुनना अच्छा लगेगा.

यह सब ठीक था, लेकिन मैं कुछ भी नहीं हो रही थी।  कोई त्रुटियाँ कंसोल में ऊपर popped (कम से कम एक बार में मैं मैं रास्ते के साथ बनाए गए सभी sx त्रुटियाँ तय).  मैं बस किसी भी आउटपुट से निर्देश नहीं मिला।  मैं चला गया और एनजी-शो के निर्देश और मैं पहले कुछ स्थैतिक पाठ जोड़ा * था * कि जाओ. यह ने मुझे लगता है कि शायद निर्देशक उलझाव "doShowExpandedErrorDetails" जैसे नए वार्स बनाएँ या एक "एनजी init" है करने की अनुमति नहीं थी कि वहाँ में। 

मैं वापस देख अगर मैं था एक प्रकार है और इस समय WebStorm मेरी मदद से बाहर करने के लिए HTML में चला गया।  मैं इस तरह की retrieveLastConfigurationError समारोह में गुजर गया था:

<जनरल cdl त्रुटि हैंडलर retrieveLastConfigurationError="CDLController.retrieveLastConfigurationError()">
</जनरल cdl त्रुटि हैंडलर>

लेकिन यह सच में यह किया जा करने के लिए आवश्यक:

<जनरल cdl त्रुटि हैंडलर पुनः प्राप्त अंतिम कॉन्फ़िगरेशन त्रुटि "CDLController.retrieveLastConfigurationError =()">
</जनरल cdl त्रुटि हैंडलर>

WebStorm काफी चालाक को पता था कि यह बंटे हो गया था।  अगर यह उस संकेत प्रदान नहीं था, मैं शायद अभी भी इस समस्या निवारण हो जाएगा मुस्कुराओ.  मज़ा बार!

इस चाल है: न केवल निर्देशक तत्व नाम बंटे है, तो तुम यह करने के लिए जोड़ें किसी भी विशेषताएँ होती हैं।  एक बार मैं हाइफ़न जोड़ा, यह सब बहुत अच्छा काम किया।  लघु एकल नामों का उपयोग करने के लिए दान की ट्यूटोरियल हुआ, तो मैं कनेक्शन नहीं बना था.

आशा है कि यह किसी को मदद मिलती है.

</अंत>

undefinedमेरे ब्लॉग के लिए सदस्यता लें.

मेरे चहचहाना पर का पालन करें http://www.twitter.com/pagalvin

HTTP 406 SharePoint बाकी अंत अंक के खिलाफ कोणीय $http.get का उपयोग करते समय त्रुटि

अद्यतन: मार्क विज्ञापन ndersson जानकारी के इस महान टुकड़ा बाहर की ओर इशारा किया: http://blogs.office.com/2014/08/13/json-light-support-rest-sharepoint-api-released/. कि बहुत कुछ बताते हैं :).

कि एक ब्लॉग पोस्ट के सबसे खराब शीर्षक हो सकता है कभी! Anyhoo.

मैं आमतौर पर एक O365 इंस्टेंस के खिलाफ मेरी प्रोटोटाइप के सभी करते हैं. मैं मेरी व्यक्तिगत उदाहरण है इतना है कि मैं किसी और को प्रभावित करने के बारे में चिंता करने की जरूरत नहीं है. एक अलग रूप में-जब हम काई-के साथ हमारे लैपटॉप पर आभासी मशीनों के चारों ओर बढ़ाया कॉल SQL Server याद, IIS, हायपर-V बनाम तय करने. VMWare? Anyhoo...

मैं एक app Angular करता है इस वातावरण में का उपयोग कर विकसित किया था, अन्य बातों के अलावा, यह:

$http.get(serverUrl)
.सफलता(समारोह(डेटा, स्थिति, शीर्ष लेख, config) {

var getLinksResponse = डेटा;

getLinksResponse.value.forEach(समारोह(theResult) {

// और इतने पर और इतने फेन

यह बस ठीक दो विभिन्न SharePoint ऑनलाइन वातावरण में काम कर रहा था. हालांकि, जब मेरे सहयोगी यह एक Cloudshare इंस्टेंस के लिए रखी, वह हो रही थी एक HTTP 406 त्रुटि (जो पहली बार मैं कभी मिला है कि एक था, तो.. याय, मेरा अंदाज़ा है). हम अनुसंधान के एक सा था और देखा कि "स्वीकार" शीर्ष लेख बंद था. SharePoint ऑनलाइन के साथ पूरी तरह से खुश था:

स्वीकार करें: आवेदन/json

Cloudshare आवृत्ति है लेकिन (जो प्रेम पर सपा है, एक वर्चुअल सर्वर में मेजबानी की) क्लासिक चाहता था "odata वाचाल =" में रूप में अच्छी तरह से जोड़ा गया:

स्वीकार करें: आवेदन/json;odata वाचाल =

कि ठीक करने के लिए, हम इस तरह के रूप में हैडर जोड़ा:

var config = {शीर्ष लेख: {
'स्वीकार करें': ' आवेदन/json;odata वाचाल ='
}
};

$http.get(serverUrl,config)
.सफलता(समारोह(डेटा, स्थिति, शीर्ष लेख, config) {

var getLinksResponse = डेटा;

getLinksResponse.value.forEach(समारोह(theResult) {

// और इतने पर और इतने फेन

कि के छुटकारा मिल गया 406, लेकिन यह भी प्रतिक्रिया का स्वरूप बदल गया. इसे और अधिक था.. वाचाल. (haha!) अधिक परिवर्तन आवश्यक थे और यहाँ अंतिम परिणाम है:

var config = {शीर्ष लेख: {
'स्वीकार करें': ' आवेदन/json;odata वाचाल ='
}
};

$http.get(serverUrl,config)
.सफलता(समारोह(डेटा, स्थिति, शीर्ष लेख, config) {

var getLinksResponse = डेटा;

getLinksResponse.d.results.forEach(समारोह(theResult) {

// और इतने पर और इतने फेन

यह केवल में बदल गया एक 30 हमारे लिए मिनट समस्या, तो हम बाहर lucked. उम्मीद है कि किसी को यह उपयोगी पाता.

</अंत>

कैसे करें: एक ही पृष्ठ पर एकाधिक कोणीय SharePoint वेब पार्ट्स को सक्षम करें

इस ब्लॉग पोस्ट बताता है कि कैसे हो सकता है आप एकाधिक Angular.js आधारित SharePoint वेब पार्ट्स (किसी सामग्री संपादक वेब पार्ट के द्वारा संदर्भित) पर उसी पृष्ठ. मैं किसी सामग्री संपादक वेब पार्ट को बुला रहा हूँ (CEWP) कि जावास्क्रिप्ट Angular.js ढांचे के एक "कोणीय वेब भाग." का उपयोग कर बनाया का संदर्भ

कोणीय के बूटस्ट्रैप प्रक्रिया आसान सुपर है और बस के बारे में हर उदाहरण आप पाते हैं internets पर कुछ इस तरह चला जाता है:

<html एनजी-app 'myApp' =>

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

</html>

यह टूट जाता है, फिर भी, यदि आप एक ही पृष्ठ पर एकाधिक कोणीय वेब पार्ट्स एकाधिक CEWP का प्रतिनिधित्व करने को सक्षम करने के लिए चाहते हैं. कोणीय ही स्वचालित रूप से पहली एनजी-app निर्देशक के खिलाफ यह ढूँढता bootstrap करेंगे – कम से कम कोणीय संस्करण के रूप में 1.3.6. समाधान बहुत आसान है-मैन्युअल रूप से आपके कोड इसके बजाय bootstrap. इसके बाद के संस्करण अब कुछ इस तरह से बदलता है:

<शरीर>
<घ
चतुर्थ id =”bootstrapHere” एनजी-नियंत्रक =”myController theController के रूप में”>
<blah /><blah /><blah />
</div>
</शरीर>

<स्क्रिप्ट src =”//ajax.googleapis.com/ajax/libs/angularjs/1.3.6/angular.js”></स्क्रिप्ट>

<स्क्रिप्ट>
angular.bootstrap(angular.element(document.getElementById(“bootstrapHere”)),['myApp']);
</स्क्रिप्ट>

मूल रूप से, एनजी-app पर तत्व करने के लिए अपने bootstrapping बजाय का उपयोग कर, आप किसी ID उस तत्व पर थप्पड़. तब, bootstrap का उपयोग करें() कोणीय पर विधि ही bootstrapping को नियंत्रित करने के लिए रन-टाइम की प्रक्रिया. मैं इस एक ही पृष्ठ पर तीन अलग अलग कोणीय वेब पार्ट्स के साथ परीक्षण किया है और यह एक आकर्षण काम करता है.

</अंत>

undefinedमेरे ब्लॉग के लिए सदस्यता लें.

मेरे चहचहाना पर का पालन करें http://www.twitter.com/pagalvin