Rozwiązywania problemów końcówki kątowe dyrektyw (Lub, Nauka miłości łączniki na raz)

Mam kilka aplikacji, że marka $http.get() rozmowy i chciał być w stanie wykazać ładnie sformatowany komunikat ze brzydki błąd szczegóły ukryte, ale dostępne.  Zasadniczo, to:

image

A jeśli użytkownik kliknie na błąd, widzą więcej:

image

Proste rzeczy.  Ponieważ dokładnie ten sam błąd potencjalnych może pojawić się na ekranie administracyjnych, jak również na ekranie użytkownika końcowego, wyraźnie wezwała do niestandardowych dyrektywy kątowe.  I  Znalazłem ten wybitny serii artykułów (http://weblogs.asp.net/dwahlin/creating-custom-angularjs-directives-part-i-the-fundamentals) przez wielki Dan Wahlin Momme.  Zgodnie z jego Radą, Bardzo szybko stworzył <Witam świat> dyrektywy i przeniósł się do moich bardziej złożone błąd wyświetlania rakla. Wpadłem na nieco kłopotów z niniejszej dyrektywy bardziej złożone.  Szczęśliwie, rodzaju przypadkiem, Powiedział, WebStorm (redaktor, używam tych dni) że plik JS był pliku kątowego i to pomogło mi obliczaæ na zewn¹trz ten problem.  Jest to kod dla samej dyrektywie:

Angular.module("CDLApp").dyrektywy("generalCdlErrorHandler", Funkcja() {

Powrót {
ograniczyć: "E",
Zamień: PRAWDA,

zakres: {
retrieveLastConfigurationError: "&"
},

szablon:
'<DIV class = "alert alert niebezpieczeństwo" rola = "wpisu" ng-init = "doShowExpandedErrorDetails = true" ng-show = "retrieveLastConfigurationError()">' +
"Wystąpił błąd we/wy lub inny błąd. Zazwyczaj dzieje się tak ponieważ plik danych konfiguracji nie może być " +
"znalezione lub plik konfiguracyjny zawiera nieprawdziwe informacje (jak odwołanie do biblioteki dokumentów " +
' nie istnieje).' +
' <BR />' +
' <DIV ng Pokaż = "doShowExpandedErrorDetails">' +
' <href = "#" ng kliknij = "doShowExpandedErrorDetails = ! doShowExpandedErrorDetails">' +
"Kliknij tutaj, aby ukryć szczegóły." +
' </a>: ' +
' <BR />' +
' <pre>{{retrieveLastConfigurationError() | JSON}}</pre>' +
' <BR />' +
' </DIV>' +
' <DIV ng Pokaż = "!doShowExpandedErrorDetails">' +
' <href = "#" ng kliknij = "doShowExpandedErrorDetails = ! doShowExpandedErrorDetails">' +
"Kliknij tutaj, aby rozwinąć szczegóły błędu." +
' </a>' +
' </DIV>' +
'</DIV>'
};
});

Zasadniczo, Tworzę nowy element o nazwie "generalCdlErrorHandler".  To musi mieć dostęp do funkcji o nazwie retrieveLastConfigurationError, i który jest obsługiwany w zakresie obiektu.  Prawdopodobnie może mieć tylko używane zakres nadrzędnego, ale czuje się leniwy.  Jeśli ktoś uważa, że należy zrobić, Chciałbym usłyszeć o tym w komentarzach.

To było wszystko dobrze, ale nic nie dostaję.  Nie ma błędów pojawiło się w konsoli (przynajmniej raz poprawiłem wszystkie błędy sx, utworzonej w drodze).  Po prostu miałem żadnych danych wyjściowych z niniejszej dyrektywy.  Poszedł i dodaje statyczny tekst przed dyrektywy ng Pokaż i * czy * się, że. To mnie myśleć, że może dyrektywy wolno było jawnie utworzyć nowy vars jak "doShowExpandedErrorDetails" lub "ng-init" się tam. 

Wrócił do HTML wobec zobaczyć jeśli ja miał typu i tym razem WebStorm pomógł mi.  Miał przechodzi w funkcji retrieveLastConfigurationError, jak to:

<ogólne cdl błąd obsługi retrieveLastConfigurationError="CDLController.retrieveLastConfigurationError()">
</ogólne cdl błąd obsługa>

Ale to naprawdę potrzebne do tego:

<ogólne cdl błąd obsługi pobierania ostatnio konfiguracja błąd = "CDLController.retrieveLastConfigurationError()">
</ogólne cdl błąd obsługa>

WebStorm był wystarczająco inteligentny, aby wiedzieć, że to musiał być dzielone.  Jeśli nie to pod warunkiem, że wskazówka, I chcieliby chyba być nadal rozwiązywania problemów to Uśmiech.  Zabawy razy!

Sztuką jest to: nie tylko nazwa elementu dyrektywy jest dzielone, tak są atrybuty, które można dodać do niego.  Dodani łączników, to wszystko pracowa³ wielki.  Dan samouczek zdarzyło się użyć krótkiego pojedynczych nazw, więc nie nawiązania połączenia.

Spodziewaæ siê ten wspó³pracownik ktoœ.

</koniec>

undefinedSubskrybowanie mój blog.

Follow me on Twitter wiek na http://www.twitter.com/pagalvin

IE9 Naprawdę nie lubi to po wykonaniu skrót z telefonu <zakres> Znaczniki

Mam wpadł w nałóg za pomocą Chrome cały czas.  To "złe", ponieważ rzeczy, które mogę rozwijać naprawdę musi być uruchamiany na wiele innych przeglądarek, tym, Niestety IE8.  Mojego laptopa pracy ma IE9 standard bez względu na przyczynę) i był po prostu szybki sposób sprawdzić, co wyglądało jak i... to nie było dość.  Na przykład:

image

Ma * ma * to wyglądać tak:

image

 

Nie tylko był on wyłączony, ale mój kliknij zdarzenia nie wypalania.  (Większość z nich, w każdym razie).

Wizualnie, wyglądało to jak wszystko zaczęło iść od szyn w pobliżu link "Ustawienia zaawansowane".  Wykopanych w tej części HTML i znalazłem, że ta linia:

<span class = "glyphicon glyphicon nowe okno" />

To wydaje się dopuszczalne składni ("Wersja chrome 40.02214.94 m"jest dobrze z nim). Poszedł i zmienił go tak, jak pokazano:

<span class = "glyphicon glyphicon nowe okna"></zakres>

Ów stały ono.

Takie małe maleństwo spowodował ogromny bałagan ekranu.  Zabawy razy.

Stało się to za szybko naprawić, ale to również tego rodzaju rzeczy, to po prostu dostaje kręgosłupa z wyrównania, gdy widzisz go.  Istnieją przez 500 wiersze kodu HTML w tej funkcji trochę admina i po prostu nie chcą znaleźć się kopania wśród chwastów, kiedykolwiek Uśmiech.

</koniec>

undefinedSubskrybowanie mój blog.

Follow me on Twitter wiek na http://www.twitter.com/pagalvin

HTTP 406 Błąd przy użyciu kątowe $http.get przeciwko SharePoint pozostałych punktów końcowych

Aktualizacja: Marc AD ndersson wskazał ten wielki kawałek informacji: http://blogs.Office.com/2014/08/13/JSON-Light-support-Rest-SharePoint-API-released/. To wiele wyjaśnia :).

To może być najgorszym tytuł blogu nigdy! Anyhoo.

Zazwyczaj jak wszystkie moje prototypów przed wystąpienie O365. Mam mój osobisty wystąpienie, tak że nie trzeba się martwić o wpływających na nikogo innego. Tak na marginesie-pamiętam kiedy nazywamy prowadzona wokół maszyn wirtualnych na laptopy z mech – SQL Server, USŁUGI IIS, decydującym vs Hyper-V. VMWare? Anyhoo...

I rozwinął aplikacji za pomocą kątowa w tym środowisku, który robi, między innymi, to:

$http.get(serverUrl)
.sukces(Funkcja(dane, stan, nagłówki, config) {

var getLinksResponse = dane;

getLinksResponse.value.forEach(Funkcja(theResult) {

// i tak dalej i tak piany

To działa dobrze w dwóch różnych środowisk SharePoint. Jednakże, Kiedy mój kolega przeniesiony do wystąpienie Cloudshare, był już HTTP 406 błąd (który został po raz pierwszy kiedykolwiek dostał ten jeden, tak... yay, Tak myślę). Zrobiłem trochę badań i zauważyłem, że "Akceptuj" nagłówek był wyłączony. Usługi SharePoint online był całkowicie zadowolony z:

Zaakceptować: aplikacji/json

Ale cloudshare wystąpienie (czyli SP na prem, hostowane na serwerze wirtualnym) chciał classic "odata = verbose" dodaje się również w:

Zaakceptować: aplikacji/json;odata = verbose

Aby ustalić, że, Dodaliśmy nagłówka jako takie:

var config = {nagłówki: {
'Accept': "aplikacja/json;odata = verbose'
}
};

$http.get(serverUrl,config)
.sukces(Funkcja(dane, stan, nagłówki, config) {

var getLinksResponse = dane;

getLinksResponse.value.forEach(Funkcja(theResult) {

// i tak dalej i tak piany

Że dostał uwalniać od 406, ale to także zmieniony format odpowiedzi. To było więcej... pełne. (haha!) Zmiany były potrzebne i oto wynik końcowy:

var config = {nagłówki: {
'Accept': "aplikacja/json;odata = verbose'
}
};

$http.get(serverUrl,config)
.sukces(Funkcja(dane, stan, nagłówki, config) {

var getLinksResponse = dane;

getLinksResponse.d.results.forEach(Funkcja(theResult) {

// i tak dalej i tak piany

To tylko zwrócił się do 30 minut problem dla nas, więc mamy pecha. Mam nadzieję, że ktoś znajdzie to przydatne.

</koniec>

Instrukcje: Umożliwić wielu kątowe SharePoint Web Part na tej samej stronie

Ten blog postów opisuje, jak można mieć wiele Angular.js oparciu web Part programu SharePoint (odwołanie za pośrednictwem składnika web part Edytor zawartości) na tej samej stronie. I 'm calling w składniku web part Edytor zawartości (CEWP) odwołujący JavaScript, zbudowany przy użyciu Angular.js framework "kątowe części sieci Web."

Kątowa w proces ładowania jest bardzo proste i prawie każdy przykład, znajdziesz na internets idzie coś takiego:

<HTML ng-app = "MojaAplikacja">

<bla /><bla /><bla />

</HTML>

To psuje, Jednakże, Jeśli chcesz, aby umożliwić wielu CEWP reprezentujących wiele kątowe składników web Part na tej samej stronie. Kątowa będzie tylko automatycznie bootstrap przed pierwszą dyrektywę ng-app to znajdzie – co najmniej od wersji kątowej 1.3.6. Rozwiązanie jest bardzo proste-ręcznie uruchamiania kodu zamiast. Powyżej teraz zmienia się na coś takiego:

<organ>
<d
IV id =”bootstrapHere” ng kontroler =”myController jako theController”>
<bla /><bla /><bla />
</DIV>
</organ>

<skrypt src =”//AJAX.googleapis.com/AJAX/libs/angularjs/1.3.6/Angular.js”></skrypt>

<skrypt>
Angular.bootstrap(Angular.element(document.getElementById(“bootstrapHere”)),["MojaAplikacja"]);
</skrypt>

Zasadniczo, zamiast ng aplikacja na element robić swoje bootstrap, slap ID na tego elementu. Następnie, Użyj bootstrap() Metoda na skośne sam kontrolować bootstrap procesu w czasie wykonywania. Ja testowałem to z trzech różnych kątowe składników web Part na tej samej stronie i działa czar.

</koniec>

undefinedSubskrybowanie mój blog.

Follow me on Twitter wiek na http://www.twitter.com/pagalvin

Komisja pojazdów silnikowych New Jersey bierze kolejną ofiarą

Tak, mój syn jest nieco spóźniona, uzyskania jego prawo jazdy.  Wczoraj, w połowie rano, on samochody ciężarowe do Oakland NJ je zdobyć.  Dostaje, wypełnia jego dokumentacji jest wydane zezwolenie unstamped i dowiaduje się, że teraz musi iść do innym MVC lokalizacji do podjęcia jego badanie wzroku.  Bo, podobno, Testery wysoko wykwalifikowanych oko nie tylko żyć gdziekolwiek, tak NJ MVC musi iść, gdzie jest talent.  Lub, może dlatego, że są po filozofii Hamiltonian konsolidacji?  Jak Hamilton czuł finansowe i produkcyjne konsolidacji były decydujące znaczenie dla przyszłości siły gospodarczej Republiki, może NJ MVC uważa, że oni muszą skonsolidować oko badania talent do przyszłych siłę NJ MVC?  Może jest to część planu niepojęty?  Niestety, Mam tylko pytania na ten temat i nie ma odpowiedzi. 

Oakland następujące porady, żona i syn truck drogę do Lodi, NJ z unstamped pozwalają Lodi.  Lodi może mieć najgorsze parking z dowolnej lokalizacji NJ MVC.  I, ponieważ oni również jedne z ograniczonych jeszcze bardzo pożądane oko testowania maszyny i okiem specjalistów badania, przyciągają one suplikanci wszelkiej maści, odcienie, Edukacja i gapiów.  Mój syn działa drogę przez labirynt linie i wskazówki dostarczone przez "never-look-them-in-the-eye" specjalistów NJ MVC i w końcu przyjechać na oko testowania linii.  Teraz dowiadują się, że osoba Oakland popełnił błąd na unstamped zezwolenia.  On nieprawidłowo wprowadzeniu numeru PESEL, wprowadzenie "8" zamiast "2" w jednej z cyfr.  Osoba NJ DMV wiedział to, bo kiedy ona zatrzymał się że źle # SS w komputerze, nie pokazać mój syn ma na imię.  Żona i syn powiedzieć, "Och, to jest zły numer, trzeba tam '2' zamiast "8." "  Tego, co wielu, może się spodziewać każdy człowiek uczciwy myślących w tym momencie jest NJ MVC osoby po prostu poprawny numer one właśnie weszła w ten rachmistrz.  Ha! Głupi!  Nr, Zamiast tego został poproszony do jego karty zabezpieczenia społecznego.  Niech błądzić na chwilę i uważają, że aby uzyskać unstamped zezwolenie na pierwszym miejscu, on już pod nas paszport, a także New Jersey urodzenia i list napisany do niego w jego adres domowy.   Jego matka jest z nim, jego nazwa, jego adres, jego wysokość (ale niestety, nie jego smak w filmach science-fiction) ... to nazwę, mój syn jest dobrze i prawdziwie zidentyfikowanych jako życia długiego pobytu w tych Stanach i rzeczywiście, New Jersey się przez wszelkie środki, jakie można sobie wyobrazić.  Jeśli osoba NJ MVC byłoby po prostu ustalone błąd że osoba Oakland wykonane, komputer chcieliby mieć zatrzymał się mój syn informacje i to byłby koniec historii.  Ale znowu, głupi!  Oni tego nie. Zamiast tego, NJ MVC nalegać na karcie zabezpieczenia społecznego teraz. 

Tak, żona i syn go zmusić go do domu i powrotu.  I w końcu, uzyska jego zezwolenia.

To trzy różne wycieczki do NJ MVC w jeden dzień.  Aby uzyskać jego zezwolenia.  Minęło prawie 6 godzin od startu do mety.  To jest mój syn wprowadzenie do jazdy w Garden State.

NJ MVC jest wyraźnie uszkodzony. 

</koniec>

Kątowe zdoła Bootstrap w IE9

Grałam w okolicy: z Angular.js do ostatniego długo a i dla życia mnie, NIE można uzyskać mój kątowe aplikacji do uruchomienia w IE9.  Wszystkie one działają dobrze w IE11 ale IE9 tylko pokazać nawiasy klamrowe i podobne kawałki.

Szukałem wokół i nie mogłem znaleźć ktoś narzeka na jego problem.  To pracował dobrze w Chrome, IE11, po prostu nie IE9.

Został wyrzucony przez fakt, że konsola IE był dawanie mi błędy jak ten:

SEC7111: HTTPS bezpieczeństwo jest zagrożone przez res://Ieframe.dll/forbidframing.htm

Błąd ten miał mi do myślenia, że wystąpił jakiś problem pobierania skośnych lub innych bibliotek, które potrzebne.  Jak okazuje się, to nie problem.

Przez szturchanie okolice internets, Wreszcie okazało się, że potrzebne do wyszukiwania frazy "startowy" i że wydawało się, jak bootstrap było nie.  W końcu, moim problemem było to, że miał urządzone mój <HTML> tag z atrybutem ng-app, jak w:

<HTML ng-app = "MatrixApp">

Również, to nie działa dla IE9.  Zamiast tego, Zawinąłem reszta HTML w <organ> wewnątrz div i odwołania do MatrixApp w ten sposób.

Problem rozwiązany.

Mam nadzieję, że to ktoś oszczędza trochę żal.

</koniec>

Tworzenie formularzy niestandardowych programu SharePoint bez strony wzorcowej

Mój kolega, Lauren Jones, Napisał ładne omówienie w jaki sposób utworzyć formularz wprowadzania danych niestandardowych za pomocą SharePoint Designer.  To nie dokładnie "nowego pod słońcem", ale tam jest trochę twist.  W jej słowa:

Tworzenie niestandardowych formularzy jest prosty do zrobienia w programie SharePoint Designer, Przejdź do listy i na wstążce menu wybierz "Lista postaci’ i utworzyć nowy szablon formularza.

To działa dobrze, jeśli chcesz formularza należy dołączyć do Ciebie strony wzorcowej, ale co zrobić, jeśli masz przypadek użycia tworzenia formularza, który jest w oknie podręcznym lub jest samodzielny bez SharePoint chrom. Miałem dokładnie ten przypadek użycia, Chciałem, aby niestandardowy styl formularz, a następnie użyć tego formularza popup div wbudowany w stronę.

Nie rozpaczaj, istnieje sposób aby to zrobić, który nie jest tak intuicyjny, ale dość łatwe do wykonania.

Możesz przeczytać wszystkie szczegóły tutaj: http://www.bigapplesharepoint.com/pages/View-An-Insight.aspx?BlogID=55&rtitle=customforms&rsrouce=pgblog i można zobaczyć go w akcji, klikając link "kontakt z nami aby uzyskać więcej informacji" na wszelkie usługi na stronie usług serwisu Big Apple SharePoint (http://www.bigapplesharepoint.com/services).

Lauren pisze dużo dobrych rzeczy na temat UX i marki.  Możesz zobaczyć więcej tutaj pisania tutaj: http://www.bigapplesharepoint.com/team?showExpertName=Lauren%20Jones.

</koniec>

Projekt rozpraszać i pijany na Coolaid funkcji

Mój kolega, Lauren Jones (https://twitter.com/laurenjones02) napisał krótki artykuł mówi o tym, jak zbyt skomplikowanych wdrożeń SP są bardzo ciężko na użytkowników końcowych.  To oczywiste, rodzaju, w sposób, ale jest to łatwe dla mnie, aby powiedzieć, że po już zorganizował wiele złożonych wdrożeń rzeczy użytkownikom końcowym przygotowany przez lata.

Tutaj jest klucz ' wykres:

Pięć lat temu, Kiedy układali SharePoint do organizacji po raz pierwszy z podstawowym celem staje się platformą współpracy i wymiana dzielenia dysków, Wprowadziliśmy również społeczne i RSS poprzez RSS, Moje strony i profile, i tagowanie folksonomy. Nie trzeba dodawać, to dużo, dla użytkowników końcowych do przyjęcia w jednym zamachem. Chociaż był sukces z przyjęcia wokół zarządzania dokumentami i profile, RSS i znakowania był mniej udany, i to było naprawdę ze względu na zmiany zarządzania komunikacji i szkolenia. Nie robimy to wszystko na raz. Biorąc jest mniej więcej podejście i uwalniając funkcjonalność w fazach jest łatwiejsze dla użytkowników końcowych do przyjęcia i przyjąć do.

W tym artykule przypomina nieco inny, czytałem przez Kris Gale związane z skamłać na zestaw funkcji, “Jeden kosztuje inżynierów i menedżerów produktu nie należy wziąć pod uwagę.”

Jeśli masz horrorem, a sukcesem dzielić, Mam nadzieję, że zrobisz to w komentarzach na stronie Big Apple.

</koniec>

Przegląd Tygodniowy – Lipca 13, 2014

I do xpost tutaj w miniony weekend. 

Tutaj jest 3RD artykuł z serii, gdzie piszę o blogu i artykuły online, które były szczególnie interesujące dla mnie w zeszłym tygodniu lub tak.  W tym tygodniu wpis w serii podkreśla dwóch projektów CodePlex dla potencjalnego zastąpienia programu InfoPath i Zarządzanie uprawnieniami z programu SharePoint, wiadomości na temat satelity, jeszcze inny JavaScript ramy i ukłon w stronę Ada Babbage i jej roli w historii komputerów.

Można ją przeczytać tutaj: http://www.bigapplesharepoint.com/pages/View-An-Insight.aspx?BlogID=93&rsource=pgblog&rtitle=roundup

</koniec>

Widok CAML zapytań w czasie rzeczywistym z usługi ULS Viewer

Mój kolega, Ashsih Patel, Napisał się ładne bramek opisujące jak zobaczyć CAML za SP różnych zapytań stało działalność w czasie rzeczywistym za pomocą widza ULS.

Oto intro:

Kiedykolwiek chcesz wiedzieć, co CAML zapytania są wykonywane przez serwer programu SharePoint?

Również, Rozwiązywanie problemów i uczenia się, celem, nie jest to zły pomysł. W sumie, SQL Profiler pomagał nam rozwiązać wiele problemów.

Mogą to być produkty tam, ale I zorientowali się, sposób na to nie wydając dodatkowych dolców! I tutaj jest...

Można przeczytać tutaj wszystko: http://www.bigapplesharepoint.com/pages/View-An-Insight.aspx?BlogID=68&rsource=pgblog&rtitle=caml.

</koniec>