עצה וגישה לפתרון בעיות עבור הוראות זוויתי (או, לומד לאהוב מקפים בכל מקום שוב)

יש לי כמה אפליקציות $http.get להפוך() קורא, ואני רוצה להיות מסוגל להציג הודעת שגיאה מעוצבת יפה עם פרטי שגיאה מכוער מוסתר, אבל נגיש.  בעיקרון, זה:

image

ולאחר מכן, אם המשתמש לוחץ על השגיאה, הם ראו מידע נוסף:

image

. דברים פשוטים  מאז אותה שגיאה פוטנציאלית המדויק יכולים להופיע המסך ניהולית, כמו גם את המסך משתמש הקצה, זה בבירור קרא הוראה זוויתי מותאם אישית.  אני  . מצאתי את זה הסדרה יוצאת מן הכלל מאמרים (http://weblogs.asp.net/dwahlin/creating-custom-angularjs-directives-part-i-the-fundamentals) מאת הגדול דן Wahlin.  בעקבות עצתו, יצרתי מהר מאוד <שלום-עולם> הוראת, עבר שלי מגב להציג שגיאה מורכבים יותר. נתקלתי קצת בצרות עם הוראה זו מורכבת יותר.  באושר, סוג של מקרה, אמרתי WebStorm (העורך שלהשתמש בימים אלה) כי קובץ JS קובץ זוויתי, זה עזר לי להבין את הנושא.  . זה הקוד עבור ההנחיה עצמה:

angular.module("CDLApp").הוראה("generalCdlErrorHandler", פונקציה() {

החזרה {
להגביל: "E",
החלף: נכון,

היקף: {
retrieveLastConfigurationError: "&"
},

תבנית:
'<div class = "התראה התראה-סכנה" תפקיד = "התראה" ng-init = "doShowExpandedErrorDetails = true" ng-שואו = "retrieveLastConfigurationError()">' +
"היה שם שגיאת קלט/פלט או בשגיאה אחרת. זה בדרך כלל קורה כי קובץ נתוני תצורה לא יכול להיות " +
"מצא או בתצורת הקובץ מכיל מידע לא מדויק (כגון הפנייה ספריית מסמכים ' +
' שאינו קיים).' +
' <br />' +
' <תוכנית-ng div = "doShowExpandedErrorDetails">' +
' <href = "#" ng-לחץ = "doShowExpandedErrorDetails = ! doShowExpandedErrorDetails">' +
'לחץ כאן כדי להסתיר פרטים'. +
' </של>: ' +
' <br />' +
' <טרום>{{retrieveLastConfigurationError() | json}}</טרום>' +
' <br />' +
' </div>' +
' <תוכנית-ng div = "!doShowExpandedErrorDetails">' +
' <href = "#" ng-לחץ = "doShowExpandedErrorDetails = ! doShowExpandedErrorDetails">' +
'לחץ כאן כדי להרחיב את פרטי שגיאה'. +
' </של>' +
' </div>' +
'</div>'
};
});

בעיקרון, . אני יוצר רכיב חדש שנקרא "generalCdlErrorHandler".  צריך גישה פונקציה שנקראת retrieveLastConfigurationError והוא זה מטופל של אובייקט היקף.  . אני בטח פשוט להשתמש ההיקף של ההורה, אבל זה מרגיש עצל.  אם מישהו חושב שאני צריך לעשות את זה, אשמח לשמוע הערות.

. זה היה בסדר, אבל לא קיבלתי כלום.  שגיאות צץ במסוף (לפחות פעם תיקנתי את כל השגיאות sx שיצרתי לאורך הדרך).  פשוט לא קיבלתי כל פלט של ההנחיה.  והלכתי הוסיף טקסט סטטי לפני ההנחיה ng-שואו ואני * כן * לענות. זה גרם לי לחשוב כי אולי ההנחיה לא הורשתה במרומז ליצירת vars חדשים כמו "doShowExpandedErrorDetails" או של "ng-init" יש שם. 

חזרתי לתוך ה-HTML כדי לראות שאם היה סוג והפעם WebStorm עזר לי.  היה לי כבר עובר בפונקציה retrieveLastConfigurationError ככה:

<כללי-cdl-שגיאה-המטפל retrieveLastConfigurationError="CDLController.retrieveLastConfigurationError()">
</כללי-cdl--מטפל בשגיאות>

אבל זה באמת היה צריך להיות כזה:

<כללי-cdl--מטפל בשגיאות אחזר-האחרונה--קיימת שגיאת תצורה = "CDLController.retrieveLastConfigurationError()">
</כללי-cdl--מטפל בשגיאות>

WebStorm היה חכם מספיק כדי לדעת שזה היה חייב להיות ממוקפות.  אם זה לא סיפק את הרמז הזה, אני כנראה להיות עדיין פתרון זה חיוך.  כיף פעמים!

הטריק הוא זה: לא רק שם הרכיב הוראת מיקוף, כך גם כל התכונות שתוסיף אליו.  פעם הוספתי את המקפים, כל עבד נהדר.  הדרכה של דן קרה כדי להשתמש בשמות אחת קצרה, אז עשיתי את החיבור.

מקווה שזה עוזר למישהו.

</קצה>

undefinedמנוי על הבלוג שלי.

עקוב אחרי הטוויטר ב http://www.twitter.com/pagalvin

IE9 ממש לא אוהב את זה כאשר אתה לוקח קיצור עם שלך <טווח> תגים

. נפלתי לתוך הרגל רע בשימוש. Chrome כל הזמן.  זה "רע" כי החומר שאני לפתח באמת צריך להפעיל הרבה דפדפני אינטרנט אחרים, כולל, למרבה הצער IE8.  המחשב הנייד שלי בעבודה יש תקן IE9 מסיבה כלשהי) אני רק עושה מהיר לבדוק אילו דברים נראה כאילו. זה לא היה יפה.  לדוגמה:

image

יש לו * אמור * נראה כך:

image

 

לא רק זה היה, אבל את האירועים לחץ שלי לא היו יורים.  (רובם, בכל מקרה).

מבחינה ויזואלית, זה נראה כאילו הדברים החלו לרדת מהפסים ליד הקישור "הגדרות מתקדמות".  חפר לחלק ההוא של ה-HTML וגיליתי שיש לי את הקו הזה:

<span class = "glyphicon glyphicon--חלון חדש" />

זה נראה כמו תחביר המותר ("כרום גירסה 40.02214.94 m", זה בסדר). הלכת ושינית אותו בכל מקרה, כפי שמוצג:

<span class = "glyphicon glyphicon--בחלון חדש"></טווח>

זה תוקן.

כזה דבר קטן גרמה כזה בלאגן ענק של מסך.  כיף פעמים.

זה קרה להיות פתרון מהיר, אבל זה גם מסוג הדברים שמקבל את עמוד השדרה שלך לא מיושרים רק כאשר אתה רואה אותו.  ישנן מעל 500 קווים של HTML שפונקציית admin קטנה. ואתה פשוט לא רוצה למצוא את עצמך חופר בין הצמחים האלו, אי-פעם חיוך.

</קצה>

undefinedמנוי על הבלוג שלי.

עקוב אחרי הטוויטר ב http://www.twitter.com/pagalvin

HTTP 406 שגיאה בעת שימוש $http.get זוויתי נגד נקודות הקצה של SharePoint מנוחה

עדכון: מארק AD ndersson הצביע נפלאה שכזו פרטי: http://blogs.office.com/2014/08/13/json-light-support-rest-sharepoint-api-released/. זה מסביר הרבה :).

אולי זו הכותרת הגרוע ביותר של הבלוג אי פעם! בכל אופו.

אני בדרך כלל עושה את כל שלי שטנץ נגד מופע O365. יש לי מופע אישי שלי כך לא צריך להיות מודאג להשפיע על מישהו אחר. במאמר מוסגר – זוכר מתי נתקשר נשאו סביב מכונות וירטואליות על המחשבים הניידים שלנו עם מוס – SQL Server, IIS, מחליטים vs Hyper-V. VMWare? בכל מקרה...

שפיתחתי אפליקציה באמצעות זוויתי בסביבה זו שעושה, בין היתר, זה:

$http.get(serverUrl)
.הצלחה(פונקציה(נתונים, מצב, כותרות, config) {

var getLinksResponse = נתונים;

getLinksResponse.value.forEach(פונקציה(תוצאה) {

// הלאה וקצף אז

זה היה עובד בסדר גמור בסביבות שני שונות SharePoint online. עם זאת, כאשר עמיתי מועבר זה מופע Cloudshare, הוא התחיל HTTP 406 שגיאה (מי היה הפעם הראשונה שקיבלתי אי פעם את זה, אז... איזה כיף, אני מניח). עשיתי קצת מחקר ואנו הכותרת "מקבל" היה את. SharePoint online היה מרוצה.:

קבל: יישום/json

אבל המופע cloudshare (מהי SP-פרם, מתארח בשרת וירטואלי) רציתי הקלאסי "odata = מילולי" הוסיף גם כן:

קבל: יישום/json;odata = מפורט

כדי לתקן את זה, הוספנו את הכותרת ככזה:

var config = {כותרות: {
'קבל': ' יישום/json;odata = מפורט '
}
};

$http.get(serverUrl,config)
.הצלחה(פונקציה(נתונים, מצב, כותרות, config) {

var getLinksResponse = נתונים;

getLinksResponse.value.forEach(פונקציה(תוצאה) {

// הלאה וקצף אז

כי יש להיפטר 406, אבל זה גם שינה את הפורמט של התגובה. זה היה יותר. מפורט. (haha!) עוד שינויים נדרשו והנה התוצאה הסופית:

var config = {כותרות: {
'קבל': ' יישום/json;odata = מפורט '
}
};

$http.get(serverUrl,config)
.הצלחה(פונקציה(נתונים, מצב, כותרות, config) {

var getLinksResponse = נתונים;

getLinksResponse.d.results.forEach(פונקציה(תוצאה) {

// הלאה וקצף אז

. זה רק הפך 30 דקה בעיה עבורנו, אז היה לנו מזל. אני מקווה שמישהו ימצא את זה שימושי.

</קצה>

כיצד לבצע: לאפשר מספר חלקים האינטרנט SharePoint זוויתי באותו עמוד

הבלוג הזה הודעות מתאר איך אתה יכול לקבל מספר Angular.js מבוסס web parts של SharePoint (הפניה באמצעות web part של עורך תוכן) באותו עמוד. . אני מתקשר web part של עורך תוכן (CEWP) שמפנה JavaScript נבנה באמצעות המסגרת Angular.js "זוויתי Web Part."

תהליך האתחול של זוויתי סופר קל והולך כל דוגמה שתמצא באינטרנט'ס משהו כזה:

<html ng-app = 'myApp'>

<בלה /><בלה /><בלה />

</html>

זה מתפרק, עם זאת, אם ברצונך לאפשר של CEWP מרובים המייצגים רכיבי web part זוויתי מרובים באותו עמוד. זוויתי רק באופן אוטומטי bootstrap נגד ההנחיה ng-app הראשון זה מוצא – לפחות גירסה זוויתי 1.3.6. הפתרון הוא פשוט למדי – באופן ידני bootstrap הקוד שלך במקום. האמור לעיל עכשיו משתנה למשהו כזה:

<הגוף>
<d
iv id =”bootstrapHere” ng-בקר =”myController כמו theController”>
<בלה /><בלה /><בלה />
</div>
</הגוף>

<סקריפט src =”//ajax.googleapis.com/ajax/libs/angularjs/1.3.6/angular.js”></קובץ script>

<קובץ script>
angular.bootstrap(angular.element(document.getElementById(“bootstrapHere”)),['myApp']);
</קובץ script>

בעיקרון, במקום להשתמש ng-app ברכיב לעשות אתחול שלך, אתה סוטר מזהה על גבי ליסוד זה. לאחר מכן, להשתמש את "אוזן הנעל"() שיטה-זוויתי עצמו כדי לשלוט על אתחול לעבד בזמן ריצה. בדקתי את זה עם שלושה רכיבי web part זוויתי שונה באותו העמוד, וזה עובד קסם.

</קצה>

undefinedמנוי על הבלוג שלי.

עקוב אחרי הטוויטר ב http://www.twitter.com/pagalvin

ועדת רכב בניו ג'רזי לוקח עוד קורבן

כל כך, הבן שלי הוא קצת איחור קבלת רשיון הנהיגה שלו.  אתמול, בבוקר באמצע, משאיות הוא עד אוקלנד ניו ג ' רזי כדי להשיג את זה.  הוא יגיע לשם, ממלא את הניירת שלו מונפק אישור unstamped, לומד כי הוא צריך ללכת עוד מיקום MVC לקחת את המבחן העין שלו.  כי, ככל הנראה, בודקי מיומנים העין לא רק חיים בכל מקום, אז NJ MVC צריך ללכת איפה הכישרון.  או, אולי זה בגלל הם עוקבים פילוסופיה המילטוניאן קונסולידציה?  כמו המילטון הרגיש פיננסיים והייצור איחוד היו ביקורתיים לחוזק הכלכלי העתידי של הרפובליקה, אולי NJ MVC חש הם צריכים לאחד את כשרון הכוח העתידית של ג'אי MVC בדיקות עיניים?  אולי זה חלק תוכנית בל יתואר?  אבוי, יש לי רק שאלות על נושא זה, אין תשובות. 

העצות הבאות של אוקלנד, אשתו ובנו משאית דרכם לודי, NJ עם ההיתר unstamped ללודי כדי לאזן.  לודי ייתכן החניון הגרוע של כל מיקום MVC ניו ג ' רזי.  ו, מאז הם גם לארח חלק נדיר עדיין מאוד חמד בדיקות מכונות, מומחי בדיקות עיניים עיניים, הם מושכים מהימנות של מכל הז'אנרים, גוונים, מטומטים וחינוך.  הבן שלי עובד את דרכו במבוך של קווים, כיוונים הניתנים על ידי אנשי מקצוע NJ MVC "never-look-them-in-the-eye", ולבסוף מגיעים אל העין בדיקות קו.  הם לומדים עכשיו כי האדם אוקלנד עשה טעות על גבי ההיתר unstamped.  כי שאל את מספר הביטוח הלאומי, שמה "8" במקום "2" באחת הספרות.  האדם NJ הרישוי ידע את זה. כי כאשר היא הוציאה את זה SS# לא בסדר במחשב, זה לא הופיע השם של הבן שלי  נגיד אשתי ובני, ". הו, . זה המספר הלא נכון, את צריכה '2' שם במקום '8'."  מה רבים, אולי לכל אדם הוגן אופקים הייתי מצפה בשלב זה היא על האדם NJ MVC פשוט לתקן את המספר הם פשוט נכנסו לתוך המחשב.  חה! טיפש!  לא, במקום זאת הוא התבקש סיפק את תעודת הביטוח שלו.  בואו סוטה מהנושא לרגע ולשקול את זה כדי לקבל את ההיתר unstamped מלכתחילה, הוא היה כבר סיפק דרכון אותנו, כמו גם של ניו ג'רזי תעודת הלידה והמכתב נכתב לו את הכתובת של הבית שלו.   אמא שלו נמצאת איתו, חולק את שמו, . הכתובת שלו, הגובה שלו (אך למרבה הצער, לא הטעם שלו בסרטי מדע בדיוני) . מה שתרצה, . הבן שלי הוא טוב, באמת מזוהה כמו תושב זמן החיים האלה הברית ואכן, ניו ג'רזי עצמה בכל אמצעי מדידה שאתם יכולים לדמיין.  אם האדם NJ MVC הייתי פשוט מתקן הטעות זה גרם האדם אוקלנד, הייתי דוחף המחשב מידע של הבן שלי, זה היה סוף הסיפור.  אבל שוב, טיפש!  הם לא יכולים לעשות את זה. במקום זאת, MVC NJ מקפידים על תעודת זהות עכשיו. 

כל כך, אשתו ובנו ללכת הביתה לקחת את זה ולחזור.  לבסוף, הוא משיג אישור.

זה שלושה טיולים שונים NJ MVC ביום אחד.  כדי לקבל האישור...  זה לקח כמעט 6 בעוד שעות מהתחלה עד הסוף.  . זה המבוא של הבן שלי שנסע מדינת הגנים.

ניו ג ' רזי MVC יתנתק באופן ברור. 

</קצה>

זוויתי נכשל Bootstrap ב- IE9

אני משחק עם Angular.js האחרונה זמן תוך ועבור בחיי., אני לא יכול לקבל שלי apps זוויתי להשיק ב- IE9.  כולם פועלים בסדר IE11 אבל IE9 רק יראה מסולסלים וסיביות דומה.

אני חיפשתי בסביבה ולא מצאתי מישהו מתלונן על הבעיה שלו.  זה עבד מצויין ב- Chrome, IE11, פשוט לא IE9.

נזרקתי העובדה כי המסוף IE נותן לי שגיאות כמו זה:

SEC7111: HTTPS האבטחה נפרצת על ידי מיל://ieframe.dll/forbidframing.htm

שגיאה זו גרמה לי לחשוב. היה שם איזה בעיה להוריד את זוויתי או ספריות אחרות שהייתי זקוק לה.  כפי שמסתבר, . זה לא היה הבעיה.

מאת לרחרח את האינטרנט במלואו, סוף סוף גיליתי כי הביטוי שהייתי צריך לחפש אחר היה "האתחול" ונראה כי אתחול נכשל.  בסופו של דבר, הבעיה שלי היתה כי היו מעוטרים שלי <html> תג עם התכונה ng-app, כמו ב-:

<html ng-app = "MatrixApp">

. טוב, . זה לא עבד עבור IE9  במקום זאת, ארזתי כל שאר ה-HTML ב- <הגוף> בתוך תג div והפניות MatrixApp ככה.

. הבעיה נפתרה.

בתקווה זה חוסך למישהו כמה צער.

</קצה>

יצירת טפסים מותאמים אישית SharePoint ללא עמוד מאסטר

עמיתי, לורן ג'ונס, כתב יפה הדרכה כיצד ליצור טופס הזנת נתונים מותאם אישית באמצעות SharePoint Designer.  זה לא בדיוק "חדש תחת השמש", אבל יש מעט טוויסט.  במילים שלה:

יצירת טפסים מותאמים אישית היא ישר קדימה לעשות ב- SharePoint Designer, לנווט אל רשימת בדף בחר תפריט הכלים ' טופס הרשימה’ ליצור תבנית הטופס החדש שלך.

זה עובד טוב, אם אתה רוצה את הטופס שלך כדי לצרף את דף ראשי, אבל מה אם יש לך במקרה שימוש של יצירת טופס זה בחלון מוקפץ או עצמאי ללא כרום SharePoint. . הייתי בדיוק זה מקרה שימוש, רציתי למותאם אישית בסגנון טופס ולאחר מכן להשתמש בצורה הזאת מוטבעת div מוקפץ בדף.

אל תתייאשו, יש דרך לעשות את זה וזה לא כך אינטואיטיבי אבל די קל לביצוע.

אתה יכול לקרוא את כל הפרטים כאן: http://www.bigapplesharepoint.com/pages/View-An-Insight.aspx?BlogID=55&rtitle=customforms&rsrouce=pgblog ואתם יכולים לראות אותו בפעולה על-ידי לחיצה על הקישור "צור קשר לקבלת מידע נוסף" על כל השירותים בעמוד השירותים של אתר SharePoint התפוח הגדול שלנו (http://www.bigapplesharepoint.com/services).

לורן כותב הרבה דברים טובים על אפיון ומיתוג.  אתה יכול לראות יותר כאן לכתוב כאן: http://www.bigapplesharepoint.com/team?showExpertName=Lauren%20Jones.

</קצה>

שיכור על Coolaid התכונה ועיצוב מסיח את הדעת

עמיתי, לורן ג'ונס (https://twitter.com/laurenjones02) כתבו מאמר קצר מדבר על איך יתר על המידה בהשקות SP מורכבת קשים מאוד על משתמשי הקצה.  . זה די ברור, בדרך, . אבל זה קל לי להגיד את זה. אחרי אני גופי הרבה מורכבות בהשקות של דברים למשתמשי הקצה לא מוכנה השנים.

הנה המפתח ' גרף:

לפני חמש שנים, כאשר אני התגלגל SharePoint על ארגון בפעם הראשונה עם מטרה ראשית להיות פלטפורמת שיתוף פעולה והחלפת לשתף כוננים, הצגנו גם חברתית והזנות חדשותיות באמצעות RSS, את האתרים שלי ואת פרופילים, ותיוג פולקסונומיה. מיותר לציין, היה קשה עבור משתמשי קצה לאמץ במכה אחת. אמנם היתה הצלחה עם אימוץ סביב ניהול מסמכים ופרופילים, RSS ותיוג היה פחות מוצלח וזה היה באמת עקב שינוי ניהול תקשורת הדרכה. לא נוכל לעשות זאת בבת אחת. לוקח הפחות היא גישה יותר, להוציא פונקציונליות בשלבים קל לקבל ולאמץ כדי שמשתמשי קצה.

מאמר זה מזכיר קצת אחר שקראתי על ידי קריס גייל הקשורים להגדיר תכונה של מקטרת, “האחד עלה מהנדסים, מנהלי המוצר לא מחשיב.”

אם יש לך סיפור אימה או סיפור הצלחה לחלוק, אני מקווה שאתה תעשה זאת בהערות באתר של התפוח הגדול.

</קצה>

Roundup שבועי – ביולי 13, 2014

אני על xpost זה כאן בסוף השבוע שעבר. 

. הנה 3רואד מאמר בסדרה שבו אני כותב על פוסטים ומאמרים באינטרנט היו במיוחד מעניין אותי בשבוע האחרון או משהו כזה.  הכניסה של השבוע בסדרה מדגיש שני פרויקטים CodePlex עבור תחליף InfoPath פוטנציאליים, ניהול הרשאות עם SharePoint, חדשות על לווינים, ובכל זאת עוד מסגרת JavaScript והנהון באביג פיתוח עדה, תפקידה בתחום המחשוב היסטוריה.

אתה יכול לקרוא את זה כאן: http://www.bigapplesharepoint.com/pages/View-An-Insight.aspx?BlogID=93&rsource=pgblog&rtitle=roundup

</קצה>

שאילתות CAML תצוגה בזמן אמת עם מציג ULS

עמיתי, Ashsih פאטל, כתב למעלה הדרכה נחמד המתארות כיצד לראות את CAML מאחורי SP שונים שאילתות זה יקרה במהלך העסקים בזמן אמת באמצעות לצופה ULS.

הנה ההקדמה:

רצית אי פעם לדעת מה שאילתות CAML מבוצעות על-ידי שרת SharePoint?

. טוב, פתרון בעיות ולמידה מטרה, . זה לא רעיון רע. אחרי הכל, SQL Profiler עוזר לנו לפתור הרבה בעיות.

אולי יש מוצרים שם בחוץ אבל הבנתי דרך לעשות את זה. בלי לבזבז עוד דולר! הנה זה...

אתה יכול לקרוא את הכל כאן: http://www.bigapplesharepoint.com/pages/View-An-Insight.aspx?BlogID=68&rsource=pgblog&rtitle=caml.

</קצה>