Неисправностей подсказка для угловых директив (Или, Научиться любить дефисы все снова)

У меня есть пару apps что делать $http.get() звонки и я хотел иметь возможность показать красиво отформатированное сообщение об ошибке с описанием уродливые ошибки скрытые, но доступными.  В основном, Это:

image

И то если пользователь нажимает на ошибки, они видят Подробнее:

image

Простые вещи.  Поскольку точное же потенциальные ошибки могут появляться в административного экрана, а также экрана конечного пользователя, она четко призвала к пользовательской директивы угловой.  Я  нашел это Лучший сериал статей (http://weblogs.asp.net/dwahlin/creating-custom-angularjs-directives-part-i-the-fundamentals) от Великого Дэн Уолину.  Следуя его советам, Я очень быстро создал <Привет, мир> Директива и переехал на мои более сложные ошибки отображения ракеля. Я побежал в немного проблемы с этой более сложной директивы.  К счастью, вроде случайно, Я сказал WebStorm (редактор, я использую эти дни) что файл JS файл угловой и он помог мне выяснить этот вопрос.  Это код для директивы, сам:

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

возвращение {
ограничить: «Е»,
заменить: Истина,

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

шаблон:
'<Div класс = "предупреждение предупреждение опасность" роль = «предупреждение" нг init = "doShowExpandedErrorDetails = true" нг шоу = «retrieveLastConfigurationError()">' +
«Там была ошибка ввода-вывода или другая ошибка. Обычно это происходит потому, что файл данных конфигурации не может быть ' +
' найдено или файл конфигурации содержит неточную информацию (Например, ссылки на библиотеки документов ' +
' что не существует).' +
' <br />' +
' <Div нг шоу = «doShowExpandedErrorDetails»>' +
' <a href = "#" нг клик = «doShowExpandedErrorDetails = ! doShowExpandedErrorDetails»>' +
«Нажмите здесь, чтобы скрыть подробности.» +
' </в>: ' +
' <br />' +
' <Pre>{{retrieveLastConfigurationError() | JSON}}</Pre>' +
' <br />' +
' </Div>' +
' <Div нг шоу =»!doShowExpandedErrorDetails»>' +
' <a href = "#" нг клик = «doShowExpandedErrorDetails = ! doShowExpandedErrorDetails»>' +
«Нажмите здесь, чтобы развернуть подробные сведения об ошибке.» +
' </в>' +
' </Div>' +
'</Div>'
};
});

В основном, Я создаю новый элемент под названием «generalCdlErrorHandler».  Доступ к функции с именем retrieveLastConfigurationError и что обрабатывается в объект области.  Я наверное мог бы просто использовать область родительского, но что чувствует ленивый.  Если кто-то думает, что я должен сделать, Хотел бы услышать об этом в комментариях.

Это было все хорошо, но я не получаю ничего.  Ошибки не выскочил в консоли (по крайней мере один раз я исправлены все ошибки sx, которую я создал по пути).  Я просто не получить какой-либо вывод из директивы.  Я пошел и добавил статический текст перед нг шоу директивы и я * ли * получить,. Это заставило меня думать, что возможно директива не разрешили создать новые переменные как «doShowExpandedErrorDetails» явно или неявно имеют «нг 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

 

Не только был выключен, но мои события click не стрельбы.  (Большинство из них, в любом случае).

Визуально, Он посмотрел, как вещи начали сходить с рельсов возле ссылки «Advanced Setup».  Я вырыл в этой части HTML и обнаружил, что у меня эта линия:

<Span класс = «glyphicon glyphicon новое окно» />

Это кажется как допустимый синтаксис («Версия chrome 40.02214.94 m» хорошо с ним). Я пошел и изменил его так или иначе, как показано:

<Span класс = «glyphicon glyphicon новое окно»></диапазон>

Что исправлено.

Такая крошечная вещица вызвало такой огромный беспорядок на экране.  Весело раз.

Это случилось быть быстро исправить, но это также та вещь, которая просто получает ваш позвоночник из выравнивания, когда вы его видите.  Есть более 500 строк HTML-кода в этой функции мало администратора и вы просто не хотят найти себе Копаем среди этих сорняков, когда-нибудь Улыбка.

</конец>

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/. Это объясняет много :).

Это может быть когда-нибудь худшее название блога! Anyhoo.

Обычно я все мои прототипирования против экземпляра O365. У меня есть мой личный экземпляр, так что я не придется беспокоиться о затрагивающих никому. Как в сторону – Помните, когда мы называем осуществляется вокруг виртуальных машин на наших ноутбуков с Мосс – SQL Server, IIS, решение Hyper-V vs. VMWare? Anyhoo...

Я разработал приложение с помощью угловых в этой среде, что делает, среди прочего, Это:

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

var getLinksResponse = данные;

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

// и так далее и так пены

Это отлично работает в двух различных средах SharePoint онлайн. Однако, Когда мой коллега перенес его в экземпляр Cloudshare, он становится HTTP 406 Ошибка (который был в первый раз, я когда-либо получил что один, так что... Ура, Наверное). Мы сделали несколько исследований и заметил, что заголовок «Принять» был выключен. SharePoint онлайн был совершенно счастлив с:

Примите: применение/json

Но cloudshare экземпляра (который является SP на Прем, виртуальный сервер) хотели классический «odata = verbose» также добавлен в:

Примите: применение/json;OData = подробный

Чтобы это исправить, Мы добавили заголовка как таковой:

var config = {заголовки: {
«Accept»: ' приложение/json;OData = verbose'
}
};

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

var getLinksResponse = данные;

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

// и так далее и так пены

Что избавился от 406, но он также изменил формат ответа. Это было больше... подробный. (Ха-ха!) Необходимы дополнительные изменения и вот окончательный результат:

var config = {заголовки: {
«Accept»: ' приложение/json;OData = verbose'
}
};

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

var getLinksResponse = данные;

getLinksResponse.d.Results.forEach(функция(theResult) {

// и так далее и так пены

Это только превратился в 30 минуту проблема для нас, Поэтому мы повезло. Надеюсь кто-то считает это полезным.

</конец>

Инструкции: Включение нескольких угловых SharePoint веб-части на той же странице

Этот блог должности описывает, как вы можете иметь несколько Angular.js на основе веб-частей SharePoint (ссылка через веб-часть редактора содержимого) на той же странице. Я звоню веб-часть редактора содержимого (CEWP) что ссылки JavaScript, построен с помощью платформы Angular.js «Угловой веб-части.»

Процесс начальной загрузки угловой в супер легко и почти каждый пример, вы найдете в интернетах идет что-то вроде этого:

<HTML нг app = «myApp»>

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

</HTML>

Это ломает, Однако, Если вы хотите включить несколько CEWP представляющие несколько угловых веб-части на той же странице. Угловая будет только автоматически загрузочный против первая директива нг app он находит – по крайней мере по состоянию на угловой версия 1.3.6. Решение довольно проста – вручную загрузочный код вместо. Выше теперь меняется на что-то вроде этого:

<тело>
<d
IV id =”bootstrapHere” нг контроллер =”myController как theController”>
<бла /><бла /><бла />
</Div>
</тело>

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

<сценарий>
angular.Bootstrap(angular.element(document.getElementById(“bootstrapHere”)),[«myApp»]);
</сценарий>

В основном, вместо нг app на элементе для сделать ваш начальная загрузка, Вы заляпать ID на этот элемент. Затем, Используйте загрузчик() метод угловых сам контролировать загрузку процесса во время выполнения. Я проверил это с трех различных угловых веб-частями на одной странице и он работает шарм.

</конец>

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

Следуй за мной по щебетать на http://www.twitter.com/pagalvin

Нью-Джерси автомобильной Комиссии занимает еще одна жертва

Таким образом, Мой сын немного назрела необходимость получения его водительского удостоверения.  Вчера, в середине утром, Он грузовики до NJ Окленд, чтобы получить его.  Он получает там, заполняет его документов выдается разрешение unstamped и узнает, что он должен теперь перейти к другой Расположение MVC принять его глаз тест.  Потому что, по-видимому, Тестеры высококвалифицированные глаз просто не живут где-нибудь, так NJ MVC необходимо туда, где талант.  Или, может быть, это потому, что они следующие Гамильтониан философии объединения?  Как Гамильтон почувствовал финансового и производственного объединения имеют решающее значение для будущей экономической мощи Республики, может быть NJ MVC чувствует, что они нуждаются в консолидации глаз тестирования талантов для будущего силы NJ MVC?  Может быть, это часть плана невыразимое?  Увы, У меня есть только вопросы по этой теме и ответов нет. 

Окленд следующие советы, жена и сын грузовик их вплоть до Лоди, Нью-Джерси с unstamped разрешения на Лоди.  Лоди могут иметь худшие стоянки любого местоположения NJ MVC.  И, так как они также принимающей некоторые из дефицитных еще весьма желанной глаз испытания машин и глаз тестирования специалистов, они привлекают отправители запросов всех мастей, оттенки, образование и зевак.  Мой сын работает свой путь через лабиринт линий и указаниями «never-look-them-in-the-eye» Профессионалы NJ MVC и наконец прибывает в глаз тестирования линии.  Теперь они узнают, что Окленд человек сделал ошибку на unstamped разрешение.  Он неправильно введенных номер социального обеспечения, поставив «8» вместо «2» в одной из цифр.  Нью-Джерси DMV человек знал это, потому что когда она вытянула вверх что неправильно SS # на компьютере, Он не показывают имя моего сына.  Жена и сын говорят, «oh, это неправильный номер, Там вам нужно '2' вместо '8'.»  То, что многие, возможно было бы ожидать каждый ярмарка единомышленников человек на данный момент является для человека NJ MVC, просто исправьте номер они только что вступила в компьютер.  Га! Дурак!  No, Вместо этого он было предложено представить его карточка социального обеспечения.  Давайте на мгновение отвлекся и считают, что для того, чтобы получить unstamped путевки в первую очередь, Он уже представил нам паспорт, а также Нью-Джерси свидетельство о рождении и письмо, написанное ему на его домашний адрес.   Его мать — с ним, разделяет его имя, его адрес, его высота (но, к сожалению, не его вкус в научно-фантастических фильмов) ... вы называете это, Мой сын хорошо и действительно определены как жизнь долго резидентов этих штатов США и действительно, Нью-Джерси себя по любым меркам, вы можете себе представить.  Если человек NJ MVC будет просто исправили ошибку, Окленд человек сделал, компьютер будет pulled вверх информацию моего сына, и это был бы конец истории.  Но снова, дурак!  Они не могут сделать это. Вместо этого, NJ MVC теперь настаивают на карточку социального обеспечения. 

Таким образом, жена и сын идут домой, чтобы получить его и возврата.  И в конце, он получает его вида на жительство.

Это три разные поездки в Нью-Джерси MVC в один день.  Чтобы получить его разрешение.  Потребовалось почти 6 часов от начала до конца.  Это мой сын введение в вождение в состоянии Сад.

NJ MVC явно нарушается. 

</конец>

Угловой не загрузки в браузере IE9

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

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

Я было брошено тот факт, что IE консоль дает мне ошибки, как это:

SEC7111: Угроза безопасности HTTPS от res://ieframe.dll/forbidframing.htm

Эта ошибка была мне думать, что существует некоторые проблемы загрузки угловой или других библиотек, которые мне нужно.  Как выясняется, Это был не вопрос.

По ковыряться в интернетах, Я наконец узнал, что мне нужно для поиска фразы «загрузочный» и что казалось самозагрузка не удается.  В конце концов, Моя проблема в том, что я оформлен мой <HTML> Тег с атрибутом нг app, как и в:

<HTML нг app = «MatrixApp»>

Колодец, Это не работа для IE9.  Вместо этого, Я обернул все остальные HTML в <тело> внутри div и ссылки MatrixApp таким образом.

Проблема решена.

Надеемся, что это кто-то сохраняет некоторые горе.

</конец>

Создание пользовательских SharePoint форм без главной страницы

Мой коллега, Лорен Джонс, Написал хорошее пошаговое руководство о том, как создать форму для ввода пользовательских данных с помощью SharePoint Designer.  Это не совсем «нового под солнцем», но есть немного твист.  По ее словам:

Создание пользовательских форм прямо вперед это делать в SharePoint Designer, Перейдите в свой список и на ленте выберите меню «формы списка’ и создайте новый шаблон формы.

Это работает хорошо, если вы хотите вашу форму, чтобы быть прикреплены к вам главную страницу, но что делать, если у вас есть вариант использования создания формы, которая находится в всплывающее окно или автономно без SharePoint хром. У меня был именно этот случай использования, Я хотел, чтобы пользовательского стиля формы, а затем использовать эту форму в div встроенный popup в пределах одной страницы.

Не отчаивайтесь, есть способ сделать это, что не разобраться, но довольно легко выполнить.

Вы можете прочитать все подробности здесь: 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, Мои сайты и профили, и folksonomy меток. Говорить, Это было очень много для конечных пользователей принять в одним махом. Хотя там был успех с принятием вокруг управления документами и профили, RSS и меток был менее успешным и это было действительно из-за изменения управления связи и профессиональной подготовки. Мы не могли сделать это все сразу. Принимая меньше больше подход и выпустив функциональность в фазах проще для конечных пользователей принять и утвердить в.

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

Если у вас есть история ужасов или история успеха поделиться, Я надеюсь, что вы будете делать это в комментариях сайте Big Apple.

</конец>

Еженедельный обзор – Июль 13, 2014

Я для для xpost это здесь в прошедшие выходные. 

Вот 3RD Статья в серии, где я пишу о блогах и статей в Интернете, которые были особенно интересным для меня в последнюю неделю или около того.  На этой неделе вступления в ряды выделяет два проекты 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 Server?

Колодец, для устранения неполадок и цели обучения, Это не плохая идея. В конце концов, Приложение SQL Profiler помог нам устранить много вопросов.

Там могут быть продукты там, но я понял, способ сделать это, не тратя лишних баксов! И вот это...

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

</конец>