Діагностичні підказка для кутових директиви (Або, Навчитися любити дефіси знову знову)

У мене є кілька застосунків, що зробити $http.get() дзвінки і я хотів мати можливість показати красиво відформатованих помилка повідомлення з потворною помилка деталі приховані, але доступним.  В основному, Це:

image

А потім, якщо користувач натискає на помилку, вони бачать Детальніше:

image

Прості речі.  Оскільки точне ж потенційні повідомлення про помилку може з'явитися в адміністративних екрану, а також кінцевий користувач екран, Він чітко закликав до настроюваного кутових директиви.  Я  знайшов це видатного серіалу статей (http://weblogs.asp.net/dwahlin/creating-custom-angularjs-directives-part-i-the-fundamentals) за великого Ден Wahlin.  Після його поради, Я створив дуже швидко <Привіт світ> Директива і переїхав до мого складніші помилка відображення Ракель. Я побіг до трохи неприємностей з цього більш складні директиви.  На щастя, Сортувати за шанс, Я розповів WebStorm (редактор, я використовую ці дні) що JS файл був кутовий файл, і це допомогло мені з'ясувати питання.  Це код для себе Директива:

angular.Module("CDLApp").Директива("generalCdlErrorHandler", функція() {

повернення {
обмежити: "Е",
замінити: Істина,

Сфера: {
retrieveLastConfigurationError: "&"
},

Шаблон:
'<DIV клас = "Оповіщати оповіщення небезпеки" роль = "оповіщення" нг init = "doShowExpandedErrorDetails = true" NG шоу = "retrieveLastConfigurationError()">' +
"Там була помилка вводу-виводу або інші помилки. Зазвичай це відбувається тому, що файл даних конфігурації не вдалося ' +
' знайшов або конфігураційний файл містить неточної інформації (Наприклад, посилання на бібліотеку документів ' +
"це не існує).' +
' <br />' +
' <DIV ng шоу = "doShowExpandedErrorDetails">' +
' <href = "#" нг клацніть = "doShowExpandedErrorDetails = ! doShowExpandedErrorDetails">' +
'Натисніть тут, щоб приховати подробиці.' +
' </на>: ' +
' <br />' +
' <попередньо>{{retrieveLastConfigurationError() | JSON}}</попередньо>' +
' <br />' +
' </DIV>' +
' <DIV ng шоу = "!doShowExpandedErrorDetails">' +
' <href = "#" нг клацніть = "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Підписатися на мій блог.

Йди за мною на Twitter в http://www.twitter.com/pagalvin

IE9 Дійсно не подобається, коли ви коротший шлях з вашої <Тривалість> Мітки

Я закохалася в погану звичку використовувати Chrome весь час.  Це "поганий", тому що речі розробити я дійсно потрібно запустити на багато інших браузерів, у тому числі, на жаль IE8.  Робочого ноутбука має IE9 стандарт для будь-якої причини) і я був просто робите швидкий перевірити, які речі виглядали так і.. це не була красива.  Наприклад:

image

Вона має * має * такий вигляд:

image

 

Був він не тільки off, але мої клік події були не стрільби.  (Більшість з них, у всякому разі).

Візуально, здавалося, що ситуація почала йдуть рейки біля посилання "Додаткові параметри".  Я вирили в ту частину HTML і виявив, що я була ця лінія:

<проліт клас = "glyphicon glyphicon нова вікно" />

Це здається допустимих синтаксис ("Chrome версії 40.02214.94 м"є штраф з ним). Я пішов і змінив його все одно, як показано:

<проліт клас = "glyphicon glyphicon нова вікно"></Тривалість>

Що встановив її.

Крихітний маленький такого викликало такий величезний безлад на екрані.  Весело рази.

Це трапилося бути швидкого рішення, але це також роду речі, які просто заважає хребет з вирівнювання, коли ви його бачите.  Налічується понад 500 ліній HTML в цей маленький admin функції і ви просто не хочуть знайти собі риття серед тих бур'яни, коли-небудь посмішка.

</кінець>

undefinedПідписатися на мій блог.

Йди за мною на Twitter в http://www.twitter.com/pagalvin

HTTP 406 Помилка при використанні кутових $http.get проти SharePoint відпочинку кінцевих точок

Оновлення: Марк оголошення ndersson вказав на цей великий шматок інформація: http://Blogs.Office.com/2014/08/13/JSON-Light-support-Rest-SharePoint-API-Released/. Це багато що пояснює :).

Що може бути коли-небудь найгірших заголовок повідомлення в блозі! Anyhoo.

Я зазвичай робити всі мої Прототипування проти O365 екземпляр. У мене є моє особисте екземпляр так що я не повинні бути турбуюся про зачіпають будь-хто інший. Як у бік – пам'ятаєте, коли ми закликаємо рознесену навколо віртуальних машин наші ноутбуки з МОСС-SQL Server, IIS, Вирішивши проти Hyper-V. VMWare? Anyhoo...

Я розробив програму за допомогою кутових в цьому середовищі, що робить, серед іншого, Це:

$HTTP.Get(serverUrl)
.успіх(функція(дані, статус, заголовки, Config) {

VAR getLinksResponse = даних;

getLinksResponse.value.forEach(функція(theResult) {

// і так далі і так піни

Це працює лише штрафом у двох різних середовищах онлайн SharePoint. Однак, Коли, мій колега портовано на Cloudshare екземпляр, він отримував послугами HTTP 406 помилка (яка була в перший раз я коли-небудь отримав що один, так.. Яй, Я гадаю). Ми зробили кілька досліджень і зауважив, що заголовку «Прийняти» був відключений. SharePoint онлайн була абсолютно щаслива зі:

Прийняти: застосування/json

Але cloudshare екземпляр (яка містить SP прем, відбулася у віртуальному сервері) хотів класичний "odata = verbose" додані також:

Прийняти: застосування/json;odata = verbose

Щоб виправити, що, Ми додали заголовка таким чином:

VAR config = {заголовки: {
"Приймати": ' застосування/json;odata = verbose'
}
};

$HTTP.Get(serverUrl,Config)
.успіх(функція(дані, статус, заголовки, Config) {

VAR getLinksResponse = даних;

getLinksResponse.value.forEach(функція(theResult) {

// і так далі і так піни

Що позбулися на 406, але це також змінив формат відповідь. Це було більше.. verbose. (Ха-ха!) Більше змін були необхідні і ось кінцевий результат:

VAR config = {заголовки: {
"Приймати": ' застосування/json;odata = verbose'
}
};

$HTTP.Get(serverUrl,Config)
.успіх(функція(дані, статус, заголовки, Config) {

VAR getLinksResponse = даних;

getLinksResponse.d.results.forEach(функція(theResult) {

// і так далі і так піни

Це тільки перетворився на 30 хвилина проблема для нас, так ми пощастило. Ми сподіваємося хтось вважає, що це корисна.

</кінець>

Як-к: Увімкнути кілька кутових SharePoint веб-частини на одній сторінці

Цей блог посад описує, як ви можете мати кілька Angular.js на основі веб-частини SharePoint (посилання за допомогою веб-частини редактора вмісту) на одній сторінці. Я дзвоню контент-редактор веб-частини (CEWP) який посилається JavaScript, побудований з використанням Angular.js рамках послугами "Кутовий веб-частини."

Bootstrap процес кутової, це просто супер, і майже кожен приклад, ви знайдете на Інтернет йде щось на зразок цього:

<HTML ng-app = 'myApp'>

<бла /><бла /><бла />

</HTML>

Це виходить з ладу, Однак, Щоб увімкнути кілька CEWP, що представляють кілька кутових веб-частин на одній сторінці. Кутовий буде тільки автоматично завантаженні проти першої директиви ng-app знахідки – щонайменше починаючи з кутовою версії 1.3.6. Рішення досить проста – вручну завантаженні вашого коду замість. Вище тепер змін щось на зразок цього:

<тіло>
<d
IV id =”bootstrapHere” NG контролер =”myController як theController”>
<бла /><бла /><бла />
</DIV>
</тіло>

<скрипт src =”//Ajax.googleapis.com/AJAX/libs/angularjs/1.3.6/angular.js”></сценарій>

<сценарій>
angular.Bootstrap(angular.Element(document.getElementById(“bootstrapHere”)),['myApp']);
</сценарій>

В основному, Замість того щоб використовувати ng-app на елемент робити ваші початкова завантаження, ви вдарите ID на цей елемент. Потім, використовувати початкового завантаження() метод на кутових сам контролювати, що початкова завантаження процесу під час роботи. Я це перевіряв це три різні кутові веб-частин на тій же сторінці, і вона працює Шарм.

</кінець>

undefinedПідписатися на мій блог.

Йди за мною на Twitter в http://www.twitter.com/pagalvin

Нью-Джерсі транспортного засобу комісія приймає іншої жертви

Так, мій син прострочено трохи одержання дозволу його водіння.  Вчора, в середині ранку, Він вантажівок до Окленд NJ дістати.  Він потрапляє туди, заливки з його документи видається штампу дозволу і дізнається, що він повинен тепер зайдіть інший Розташування MVC взяти його перевірки зору.  Тому що, мабуть, висококваліфіковані очей тестери не просто жити в будь-якій, так NJ MVC повинен йти, де є талант.  Або, може бути, це тому, що вони наступні гамільтоніан філософії консолідації?  Стільки, скільки Гамільтон відчував фінансові та виробничі консолідації критично ставилися до до майбутніх економічних сили Республіки, може бути NJ MVC відчуває, що вони повинні об'єднати очей тестування талант для майбутніх міцності MVC Нью-Джерсі?  Може бути, це частина невимовною плану?  На жаль, У мене тільки питання на цю тему і немає відповіді. 

Наступні Окленд поради, дружина і син вантажівка свій шлях вниз до Лоді, Нью-Джерсі з штампу дозволу на Лоді.  Lodi, можливо, найгірший паркування будь-якого місця Нью-Джерсі MVC.  І, так як вони також проводити деякі дефіцитні ще досить бажаним для очей тестування машини і очей тестування професіоналів, Вони приваблюють supplicants всіх мастей, відтінки, освіта та gawkers.  Мій син працює свій шлях через лабіринт ліній і вказівок "never-look-them-in-the-eye" Нью-Джерсі MVC професіоналів і нарешті прибути в око тестування лінії.  Тепер вони дізнаються, що людина Окленд помилився на штампу дозволу.  Він неправильно введених номер соціального страхування, поклавши на послугами "8" замість "2" в одному з цифр.  Нью-Джерсі DMV людина знав про це тому, що коли вона під'їхала що неправильно SS # на комп'ютері, він не показати ім'я мого сина.  Дружина і син say, "Ах, це неправильний номер, там потрібно '2' замість '8'."  Те, що багато, можливо було б очікувати кожна справедливою налаштованих людина на даний момент є Нью-Джерсі MVC людини, щоб просто виправити число вони щойно вступив в комп'ютер.  Ха! Дурень!  Ні, Замість цього він попросив за умови його роботодавець.  Давайте відволіктися на мить і розглянути питання про який для того, щоб отримати дозвіл штампу в першу чергу, Він вже надавав американський паспорт, а також Нью-Джерсі свідоцтво про народження та лист написано йому в свою домашню адресу.   Його мати, з ним, розділяє його ім'я, його адреса, його висота (але на жаль, не його смак в науково-фантастичному кіно) .. ви називаєте це, мій син є добре і по-справжньому визначили як життя довгий резидента цих держав США і справді, Нью-Джерсі себе за будь-якими мірками, ви можете собі уявити.  Якщо людина NJ MVC б просто помилки що фіксований Окленд людина зробив, комп'ютера мають під'їхав мій син інформації, і це було б кінця матеріалу.  Але знову, дурень!  Вони не можу цього зробити. Замість цього, Нью-Джерсі MVC наполягати на соціальне забезпечення картку зараз. 

Так, дружина і син йти додому, щоб отримати його і повернення.  І врешті-решт, він отримує його дозволу.

Ось три різних поїздок в Нью-Джерсі MVC в один день.  Щоб отримати його дозволу.  Знадобилося майже 6 день від початку до кінця.  Це мій син введення до водіння в стані сад.

Нью-Джерсі MVC чітко порушується. 

</кінець>

Кутова не в змозі завантаженні IE9

Я грав в околицях з Angular.js за останні довгий час і для життя мене, Я не міг отримати мій кутових застосунки для запуску в IE9.  Всі вони сумісні з IE11, але IE9 б просто показати фігурними дужками а також аналогічні біти.

Я шукав навколо і не міг знайти будь скаржиться на свою проблему.  Він працював штрафу в Chrome, IE11, просто не IE9.

Я був кинутий в тому, що консоль IE давав мені помилки, як це:

SEC7111: HTTPS безпеки скомпрометовані res://ieframe.dll/forbidframing.htm

Цю помилку змусив мене думаючи, що є деякі проблеми завантаження кутовою або інших бібліотек, що мені потрібно.  Як виявилося, Це не було питання.

Оглянуто колупатися Інтернет, Я нарешті дізнався, що фраза, що мені потрібно, щоб шукати "bootstrap", і що здавалося, що початкова завантаження зазнали невдачі.  Врешті-решт, моя проблема в тому, що я мав прикрашені мій <HTML> тег з атрибутом ng-app, як і в:

<HTML ng-app = "MatrixApp">

Ну, Це не спрацювало для IE9.  Замість цього, Я завернула все інше HTML у в <тіло> всередині div та посиланнями на MatrixApp таким чином.

Вирішені проблеми.

Сподіваюся це економить хтось деякий горя.

</кінець>

Створення настроюваного SharePoint форми без головної сторінки

Мій колега, Лорен Джонс, написали nice покрокове про те, як створити форму для введення даних користувача за допомогою SharePoint Designer.  Це не зовсім "нового під сонцем", але трохи з твіст.  За її словами:

Створення користувацьких форм, прямо вперед, щоб зробити в SharePoint Designer, Перейдіть до списку і на стрічці меню виберіть ' формі списку’ і створити новий шаблон форми.

Це працює добре, якщо ви хочете, щоб ваша форма бути прикріплена до вас сторінки-шаблону, але що робити, якщо у вас є використання при створенні форму, що знаходиться в спливаючому вікні або ізольований без SharePoint chrome. Я повинен був саме той випадок використання, Я хотів, щоб користувацький стиль форму, а потім використовувати цю форму в popup div вбудовані в межах сторінки.

Не впадайте у відчай, Існує спосіб зробити це, який не є що інтуїтивно, але досить легко здійснити.

Ви можете прочитати всі подробиці тут: http://www.bigapplesharepoint.com/pages/View-An-Insight.aspx?BlogID=55&rtitle=customforms&rsrouce=pgblog і ви можете побачити її в дії, натиснувши на "зв'язатися з нами для отримання додаткової інформації" посилання на будь-яких послуг на сторінку нашого сайту Big Apple SharePoint (http://www.bigapplesharepoint.com/services).

Лорен пише багато хороших речей про UX та брендинг.  Ви можете бачити більше тут писати тут: http://www.bigapplesharepoint.com/team?showExpertName=Lauren%20Jones.

</кінець>

Відволікає дизайн і п'яний на функцію Coolaid

Мій колега, Лорен Джонс (https://twitter.com/laurenjones02) писав короткі статті говоримо про те, як надмірно складною SP сувоїв є дуже важко на кінцевих користувачів.  Начебто очевидно, Таким чином, але це легко для мене, щоб сказати, що після того, як я організували багато складних сувоїв речей для непідготовлених кінцевих користувачів протягом багатьох років.

Ось ключ ' Графік:

П'ять років тому, Коли я розгорнута SharePoint для організації в перший раз з головною метою стає платформи співробітництва і заміни частка дисків, Ми також запровадили соціальних і через RSS-канали новин, Моїх сайтів і профілі, Фолксономія Мітки. Зайве говорити, Це було багато для кінцевих користувачів, щоб прийняти одним махом. Незважаючи на успіх з прийняттям навколо документообігу та профілі, RSS та додавання тегів був менш успішним, і це було насправді через зміну управління спілкування і навчання. Ми не змогли це зробити все відразу. Беручи менш більше підхід і випускаючи функціональності в фазах простіше для кінцевих користувачів, щоб прийняти і прийняти до.

Ця стаття нагадує про ще трохи, я читав Кріс Гейл пов'язані Yammer в набір функцій, “Один коштувати інженерів і менеджери не вважають.”

Якщо у вас жах розповіді або історія успіху поділитися, Я сподіваюся, що ви будете робити це в коментарях на території великого яблука.

</кінець>

Щотижня Roundup – Липень 13, 2014

Я до xpost це тут, у минулі вихідні. 

Ось в 3віддаленого робочого стола Стаття у серії, де я пишу про блогах і онлайнових статей, які були особливо цікавим для мене в останній тиждень або близько того.  На цьому тижні запис в серії підкреслює двох CodePlex проектів для потенційних заміна InfoPath а також для керування дозволами з SharePoint, Новини про супутників, ще інший JavaScript framework і кивати на Ada Беббідж та її роль в історії комп'ютерної науки.

Ви можете прочитати тут: http://www.bigapplesharepoint.com/pages/View-An-Insight.aspx?BlogID=93&rsource=pgblog&rtitle=roundup

</кінець>

Подання CAML запитів у реальному часі за допомогою засобу перегляду ULS

Мій колега, Ashsih Патель, Написав вгору nice Покрокове описують як побачити CAML позаду різних SP запитів що відбуваються в ході бізнес у реальному часі за допомогою засобу перегляду ULS.

Ось intro:

Ви коли-небудь хочете знати, що CAML запити виконуються за допомогою SharePoint Server?

Ну, для усунення несправностей і навчальних цілях, Це не погана ідея. Як би там не було, SQL Profiler допомагала нам виправлення багато питань.

Може скластися продуктів там, але я вирішив, що спосіб, щоб зробити це, не витрачаючи додаткових баксів! І ось воно...

Ви можете читати все це тут: http://www.bigapplesharepoint.com/pages/View-An-Insight.aspx?BlogID=68&rsource=pgblog&rtitle=caml.

</кінець>