Trouble-shooting Tip pro úhlové směrnic (Nebo, Naučit se znovu milovat spojovníky)

Mám několik aplikací, které se $http.get() volání a chtěl jsem být schopen Ukázat pěkně formátované chybové zprávy s podrobnostmi k ošklivé chybě skryté, ale přístupný.  V podstatě, to:

image

A pak pokud uživatel klepne na chybu, Zobrazit více informací:

image

Jednoduché věci.  Vzhledem k tomu, že přesně stejný potenciální chyba se může objevit v administrativní obrazovku, stejně jako obrazovka koncového uživatele, jasně vyzval k vlastní úhlové směrnice.  JÁ  našel to vynikající seriál článků (http://weblogs.asp.net/dwahlin/creating-custom-angularjs-directives-part-i-the-fundamentals) velký Dan Wahlin.  Po jeho radu, Vytvořil jsem velmi rychle <Hello svět> směrnice a přesunul se k mé složitější Chyba zobrazení stěrka. Narazil jsem na problémy s touto složitější směrnicí.  Šťastně, jaksi náhodou, Řekl jsem měl WebStorm (editor, který používám v těchto dnech) že byl soubor JS soubor úhlové a to mi pomohlo vyřešit problém.  To je kód pro samotné směrnice:

angular.Module("CDLApp").směrnice("generalCdlErrorHandler", funkce() {

návrat {
omezit: "E",
nahradit: pravda,

rozsah: {
retrieveLastConfigurationError: "&"
},

Šablona:
'<div třída = "upozornit upozornění nebezpečí" role = "upozornění" NG-init = "doShowExpandedErrorDetails = true" NG-show = "retrieveLastConfigurationError()">' +
"Tam byl chyby nebo jiné chybě. To se obvykle stává, protože konfigurace datového souboru nelze ' +
' nalezeno nebo konfigurační soubor obsahuje nesprávné informace (například odkazující na knihovnu dokumentů ' +
' neexistuje).' +
' <BR />' +
' <div ng-show = "doShowExpandedErrorDetails">' +
' <href = "#" NG klikněte = "doShowExpandedErrorDetails = ! doShowExpandedErrorDetails">' +
"Klepnutím sem skryjete detaily." +
' </a>: ' +
' <BR />' +
' <pre>{{retrieveLastConfigurationError() | JSON}}</pre>' +
' <BR />' +
' </div>' +
' <div ng-show = "!doShowExpandedErrorDetails">' +
' <href = "#" NG klikněte = "doShowExpandedErrorDetails = ! doShowExpandedErrorDetails">' +
"Klepnutím sem rozbalíte podrobnosti o chybě." +
' </a>' +
' </div>' +
'</div>'
};
});

V podstatě, Já jsem vytvořit nový prvek s názvem "generalCdlErrorHandler".  Potřebuje přístup k funkci nazvanou retrieveLastConfigurationError a která je zpracována v rozsahu objektu.  Pravděpodobně by mohla jen použil jsem nadřazené obor, ale to je líný.  Pokud si někdo myslí, že jsem měl udělat, Rád bych slyšet o tom v komentářích.

To bylo vše v pořádku, ale jsem nic nedělal.  Žádné chyby vyskočila v konzole (alespoň jednou jsem opravil všechny chyby sx, vytvořené po cestě).  Prostě nedostal jsem žádný výstup z působnosti této směrnice.  Šel jsem a přidal nějaký statický text před ng výstava směrnice a * to * že. To se mi myslím, že možná směrnice nebylo dovoleno implicitně vytvořit nové vars jako "doShowExpandedErrorDetails", nebo mají "ng-init" tam. 

Vrátil jsem se do HTML zjistit, že jestli jsem měl typ a tentokrát WebStorm mi pomohl.  Jsem měl kolem ve funkci retrieveLastConfigurationError jako je tento:

<Generál cdl popisovač chyb retrieveLastConfigurationError="CDLController.retrieveLastConfigurationError()">
</Generál cdl popisovač chyb>

Ale to opravdu potřeba se tento:

<Generál cdl popisovač chyb načíst poslední konfigurace chyba = "CDLController.retrieveLastConfigurationError()">
</Generál cdl popisovač chyb>

WebStorm byl dost chytrý na to, vědět, že to muselo být rozdělován.  Pokud to nebyl ten náznak, Já bych asi být stále řešení problémů to Usměj se.  Zábavné krát!

Trik je v tom to: Nejenže je název směrnice prvku dělení, tak jsou všechny atributy, které přidáte k němu.  Jakmile jsem přidal spojovníky, Všechno to fungovalo skvěle.  Dan kurz se stalo používat krátká jména jednoho, tak jsem neudělal spojení.

Doufám, že to pomůže někdo.

</Konec>

undefinedPřihlásit se na mém blogu.

Za mnou na Twitter na http://www.twitter.com/pagalvin

IE9 Opravdu nemá ráda, když budete mít zástupce s vaší <rozpětí> Značky

Dostal jsem se do zlozvyk používat Chrome celou dobu.  Je to "špatné", protože to, co jsem rozvíjet skutečně potřebuje, aby běžet na spoustu jiných webových prohlížečů, včetně, Bohužel IE8.  Moje pracovní notebook má IE9 standard z nějakého důvodu) a dělal jsem jen rychle zkontrolovat, co vypadal jako a... to nebylo pěkné.  Například:

image

Má * předpokládá * vypadat takto:

image

 

Nejenže to bylo pryč, ale moje click události nebyly palbu.  (Většina z nich, Každopádně).

Vizuálně, Vypadalo to, že všechno začalo jít z kolejí nedaleko odkaz "Pokročilé nastavení".  Do té části HTML a zjistil jsem, že tento řádek:

<rozpětí třídy = "glyphicon glyphicon nové okno" />

To se jeví jako přípustné syntaxe ("Chrome verze 40.02214.94 m"je v pořádku s ním). Šel jsem a změnil jej stejně, Jak je uvedeno:

<rozpětí třídy = "glyphicon glyphicon nové okno"></rozpětí>

To to.

Taková malá maličkost způsobila obrovský nepořádek obrazovky.  Zábavné krát.

To stalo se narychlo, ale to je také druh věcí, které prostě dostane vaše páteř sklopené, když ji.  Existuje více než 500 řádky HTML v této malé admin funkce a vy jen nechcete najít sami kopat mezi tyto plevele, někdy Usměj se.

</Konec>

undefinedPřihlásit se na mém blogu.

Za mnou na Twitter na http://www.twitter.com/pagalvin

HTTP 406 Chyba při použití úhlové $http.get proti SharePoint REST koncových bodů

Aktualizovat: Marc AD ndersson poukázal na tento velký kus info: http://blogs.Office.com/2014/08/13/JSON-Light-support-Rest-SharePoint-API-Released/. To vysvětluje hodně :).

To může být vůbec nejhorší titul blogu! Anyhoo.

Jsem obvykle dělat všechny moje prototypování proti O365 instance. Mám své osobní instance tak, že se nemám bát a ovlivňuje někdo jiný. Jako stranou – si říkáme provedeno kolem virtuálních strojů na našich noteboocích s MECHEM – SQL Server, SLUŽBA IIS, rozhodnutí vs Hyper-V. VMWare? Anyhoo...

Jsem si vyvinul app pomocí úhlové v tomto prostředí, které se, mimo jiné, to:

$http.Get(serverUrl)
.úspěch(funkce(údaje, stav, záhlaví, config) {

var getLinksResponse = data;

getLinksResponse.value.forEach(funkce(Výsledky) {

// a tak dále a tak pěnu

To bylo v pořádku jen ve dvou různých prostředích online služby SharePoint. Avšak, když můj kolega portován na instanci Cloudshare, vystupoval HTTP 406 Chyba (což bylo poprvé, co jsem kdy dostal tenhle, Takže... hurá, Asi). Jsme trochu výzkumu a všiml si, že záhlaví "Přijmout" vypnuto. SharePoint online byl naprosto spokojený s:

Přijmout: aplikace/json

Ale cloudshare instance (což je SP na prem, hostitelem virtuálního serveru) Chtěl klasické "odata = verbose" přidána také:

Přijmout: aplikace/json;OData = verbose

Chcete-li opravit, Přidali jsme záhlaví jako takové:

var config = {záhlaví: {
"Přijmout": "aplikace/json;OData = verbose'
}
};

$http.Get(serverUrl,config)
.úspěch(funkce(údaje, stav, záhlaví, config) {

var getLinksResponse = data;

getLinksResponse.value.forEach(funkce(Výsledky) {

// a tak dále a tak pěnu

To se zbavil 406, ale to také změnil formát odpovědi. To bylo více... verbose. (haha!) Další změny byly nutné, a tady je konečný výsledek:

var config = {záhlaví: {
"Přijmout": "aplikace/json;OData = verbose'
}
};

$http.Get(serverUrl,config)
.úspěch(funkce(údaje, stav, záhlaví, config) {

var getLinksResponse = data;

getLinksResponse.d.Results.forEach(funkce(Výsledky) {

// a tak dále a tak pěnu

Jen se proměnil v 30 minutě problém pro nás, tak to máme štěstí. Doufejme, že někdo zjistí, to užitečné.

</Konec>

Postupy: Povolit více úhlové SharePoint webových částí na stejné stránce

Tento blog příspěvky popisuje, jak může mít více Angular.js založené webové součásti služby SharePoint (odkazováno pomocí webové části editor obsahu) na téže stránce. Já volám webovou část editor obsahu (CEWP) odkazující JavaScript pomocí Angular.js framework "Úhlové webová část."

Je úhlová zaváděcí proces je super snadné a skoro každý příklad, který najdete na internety jde něco takového:

<HTML ng-app = "aplikace">

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

</HTML>

To boří, Avšak, Pokud chcete povolit více CEWP představující více úhlové webových částí na stejné stránce. Úhlová bude automaticky zaváděcí proti první směrnice ng-app najde – alespoň od úhlové verze 1.3.6. Řešení je velmi jednoduché – ručně bootstrap kódu místo. Výše uvedené se nyní změní na něco takového:

<tělo>
<d
IV id =”bootstrapHere” NG řadič =”myController jako theController”>
<bla /><bla /><bla />
</div>
</tělo>

<Script src =”//AJAX.googleapis.com/AJAX/libs/angularjs/1.3.6/angular.js”></skript>

<skript>
angular.bootstrap(angular.element(document.getElementById(“bootstrapHere”)),["aplikace"]);
</skript>

V podstatě, namísto použití ng-app na prvku udělat váš spouštěcího programu, facku ID na tento prvek. Pak, použít zaváděcí() Metoda na úhlové sám kontrolovat bootstrappingu zpracovat v době běhu. Testoval jsem to s třemi různými úhlové webových částí na stejné stránce a funguje to kouzlo.

</Konec>

undefinedPřihlásit se na mém blogu.

Za mnou na Twitter na http://www.twitter.com/pagalvin

Komise motorových vozidel New Jersey má další oběť

Tak, můj syn je trochu zpoždění, získání jeho řidičský průkaz.  Včera, v polovině dopoledne, On kamiony do Oaklandu NJ jej získat.  On se tam dostane, vyplní jeho papíry vydává povolení k nekolkovaném a učí, že teď musí jít do Další MVC umístění vzít jeho oční test.  Protože, zřejmě, vysoce kvalifikovaní oční testeři jen nežijí nikde, NJ MVC se tedy musí jít, kde je talent.  Nebo, Možná je to proto, že jsou po hamiltonián filozofie konsolidace?  Jako Hamilton cítil, výrobní a finanční konsolidace byly rozhodující pro budoucí ekonomickou sílu republiky, Možná NJ MVC cítí, že potřebují upevnit oko testování talent pro budoucí sílu NJ MVC?  Možná je to nevyslovitelné plánu?  Bohužel, Mám pouze otázky na toto téma a žádné odpovědi. 

Následující Oakland poradenství, žena a syn truck svou cestu až na Lodi, NJ s nekolkovaném povolení k Lodi.  Lodi může mít nejhorší parkování libovolného místa NJ MVC.  A, vzhledem k tomu, že se také hostit některé vzácné ještě velmi vyhledávaný oko testování stroje a oční testy profesionálů, přitahují prosebníky všech vyznání, odstíny, vzdělání a klacků.  Můj syn pracuje jeho cestu bludištěm linek a směry profesionálov "never-look-them-in-the-eye" NJ MVC a konečně dorazí na oko testování linky.  Nyní učí, že člověk Oakland udělal chybu na nekolkovaném povolení.  Mis-vyťukala číslo sociálního pojištění, uvedení "8" místo "2" v jednom z číslic.  NJ DMV osoba to věděl, protože když vytáhla že špatně SS # v počítači, to neukázala jméno mého syna.  Žena a syn, "oh, To je špatné číslo, Potřebujete '2' tam místo '8'."  Co n, snad každý objektivní člověk by očekával v tuto chvíli je pro člověka NJ MVC jednoduše opravit číslo se právě vstoupil do počítače.  Ha! Blázen!  Ne, místo toho byl požádán, aby svou kartu sociálního zabezpečení k dispozici.  Pojďme na chvíli odbočit a za to, že s cílem získat nekolkovaném povolení v prvé řadě, on již poskytla pas, stejně jako New Jersey rodný list a dopis psaný mu na jeho adresu.   Jeho matka je s ním, sdílí jeho jméno, jeho adresa, jeho výška (ale bohužel, ne jeho vkus ve sci-fi filmech) ... znáte to, můj syn je dobře a opravdu jako život dlouho bydliště těchto států USA a ba, New Jersey samotné jakýmkoli opatřením, které si dokážete představit.  Je-li osoba NJ MVC by prostě fakt chybu že osoba Oakland se, počítač by vytáhl mého syna informací a to by byl konec příběhu.  Ale znovu, blázen!  To nemohou udělat. Místo toho, NJ MVC nyní trvat na kartu sociálního zabezpečení. 

Tak, žena a syn jde domů, aby si to návrat.  A na konci, Získá jeho povolení.

To je tři různé výlety do NJ MVC v jeden den.  Chcete-li získat jeho povolení.  Trvalo to téměř 6 hodin od začátku do konce.  To je můj syn Úvod do řízení státu, zahrada.

NJ MVC je zjevně poškozen. 

</Konec>

Úhlové nedokáže zavaděč v IE9

Já jsem byla pohrával s Angular.js za poslední dlouho a pro život mě, Nemohl se dostat můj úhlové apps zahájit v IE9.  Všechny pracují dobře v IE11, ale IE9 by předvést, složené závorky a podobné kousky.

Jsem hledal a nemohl najít nikoho stěžovat na jeho problému.  Fungovalo to dobře v Chrome, IE11, jen ne IE9.

Byla odsunuta ze skutečností, že konzole IE mi dává chyby, jako to:

SEC7111: HTTPS zabezpečení je ohrožen res://Ieframe.dll/forbidframing.htm

Tato chyba se mi myslí, že tam byl nějaký problém při stahování úhlové nebo jiné knihovny, které jsem potřeboval.  Jak to dopadá, to nebyla otázka.

Podle Postrkování kolem internety, Nakonec jsem zjistil, že fráze, kterou jsem musel hledat "zaváděcí" a že to vypadalo, jako bootstrappingu Exnerem.  Na konci, můj problém byl, že jsem obohatil můj <HTML> Tag s atributem ng-app, stejně jako v:

<HTML ng-app = "MatrixApp">

No., to není práce pro IE9.  Místo toho, Zabalil jsem zbytek HTML v <tělo> uvnitř div a odkazy MatrixApp tímto způsobem.

Problém vyřešen.

Doufejme, že to někdo šetří nějaký smutek.

</Konec>

Vytváření formuláře vlastní SharePoint bez stránku předlohy

Můj kolega, Lauren Jones, sepsal pěkný průchozí, jak vytvořit formulář pro zadávání vlastních dat pomocí aplikace SharePoint Designer.  To není zrovna "nového pod sluncem", ale je tu trochu twist.  V jejích slovech:

Vytvoření vlastních formulářů je přímo vpřed v aplikaci SharePoint Designer, Přejděte do seznamu a na pásu karet menu vyberte ' formulář seznamu’ a vytvořte novou šablonu formuláře.

To funguje dobře, pokud chcete váš formulář k vám připojit stránku předlohy, Ale co když máte případ použití vytvoření formuláře, který je ve vyskakovacím okně nebo samostatné bez SharePoint chrom. Měl jsem přesně tento případ použití, Chtěl jsem na vlastní styl formuláře pak použít tento formulář v místní div vložený na stránce.

Nezoufej, je ale poměrně snadný způsob, jak to udělat, který není tak intuitivní.

Si můžete přečíst všechny podrobnosti zde: http://www.bigapplesharepoint.com/pages/View-An-Insight.aspx?BlogID=55&rtitle=customforms&rsrouce=pgblog a můžete to vidět v akci klepnutím na odkaz "kontaktujte nás pro více informací" na žádné služby na stránce služby našeho webu Big Apple SharePoint (http://www.bigapplesharepoint.com/services).

Lauren píše spousta dobrých věcí na UX a značky.  Můžete vidět více zde psaní zde: http://www.bigapplesharepoint.com/team?showExpertName=Lauren%20Jones.

</Konec>

Rušivě Design a opilec na funkci Coolaid

Můj kolega, Lauren Jones (https://twitter.com/laurenjones02) napsal krátký článek hovoří o tom, jak příliš složité rollouts SP jsou velmi těžké na koncové uživatele.  To je druh zřejmé, v jistém smyslu, ale to je snadné pro mě říci, že poté, co jsem zorganizoval spoustu složitých rollouts věcí nepřipravený koncovým uživatelům v letech.

Tady je klíč ' grafu:

Před pěti lety, Když jsem vyjel SharePoint do organizace poprvé s primárním cílem stává platformu pro spolupráci a výměně sdílení disků, Zavedli jsme také sociální a novinkami prostřednictvím RSS, Moje stránky a profily, a označování folksonomy. Netřeba, to bylo hodně koncoví uživatelé zaujmout v jednom pera. Sice úspěch s přijetím kolem správy dokumentů a profily, RSS a značkování byl méně úspěšný a to bylo opravdu způsobeno změnu řízení komunikace a vzdělávání. Nemohli jsme to udělat všechno najednou. S méně je více přístup a uvolnění funkce ve fázích je snazší pro koncové uživatele akceptovat a přijmout.

Tento článek připomíná další kousek, co jsem četl o Kris Gale související se sadou funkcí si naříkání, “Ten stojí inženýrů a produktových manažerů nepovažuji.”

Pokud máte hororový příběh nebo úspěch podělit, Doufám, že uděláš to v komentářích na stránkách Big Apple.

</Konec>

Týdenní Roundup – Červenec 13, 2014

I pro xpost tady za posledních víkend. 

Zde je 3RD článek v sérii, kde jsem psát o blogu a online články, které byly obzvláště zajímavé pro mě v posledním týdnu nebo tak nějak.  Položky tohoto týdne v řadě zdůrazňuje dva projekty CodePlex pro potenciální náhrada aplikace InfoPath a správě oprávnění pomocí služby SharePoint, Novinky o satelitech, ještě další JavaScript rámce a kývnout na Ada Babbage a její role v historii výpočetní techniky.

Si můžete přečíst zde: http://www.bigapplesharepoint.com/pages/View-An-Insight.aspx?BlogID=93&rsource=pgblog&rtitle=roundup

</Konec>

Zobrazit CAML dotazy v reálném čase s ULS Viewer

Můj kolega, Pavlína Patel, Psal se hezky průchozí jak vidět CAML za různé SP dotazech stalo v průběhu podnikání v reálném čase pomocí prohlížeče ULS.

Tady je intro:

Chtěl jste vědět, jaké CAML dotazy jsou spouštěny serverem SharePoint?

No., pro řešení problémů a učení účel, to není špatný nápad. Koneckonců, SQL Profiler pomáhá nám řešit spoustu problémů.

Mohou být produkty tam, ale jsem vymyslel způsob, jak to udělat bez výdajů navíc babek! A je to tady...

Si můžete přečíst celou věc: http://www.bigapplesharepoint.com/pages/View-An-Insight.aspx?BlogID=68&rsource=pgblog&rtitle=caml.

</Konec>