Archivy kategorií: Úhlové

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

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