Archívy kategórie: Uhlové

Trouble-Shooting Tip pre uhlové smerníc (Alebo, Naučiť sa milovať spojovníky celej znova)

Mám pár apps, že značka $http.get() hovory a ja som chcel byť schopní Ukázať pekne formátovaného chybového hlásenia s škaredé chyby Podrobnosti skryté, ale dostupné.  V podstate, this:

image

A potom ak používateľ klikne na chybu, Oni vidia viac info:

image

Jednoduché veci.  Pretože presne rovnaký potenciál chyba sa môže vyskytnúť správne obrazovke, ako aj na obrazovku koncového používateľa, jasne to nazýva vlastné uhlové smernice.  SOM  našiel toto Vynikajúca séria článkov (http://weblogs.asp.net/dwahlin/creating-custom-angularjs-directives-part-i-the-fundamentals) veľký Dan Wahlin.  Po jeho radu, Veľmi rýchlo vytvorený <Ahoj-world> smernica a presťahoval sa do mojej zložitejšie chyba displeja stierka. Bežal som do trochu problémy s touto zložitejšie smernicou.  Šťastne, druh náhodou, Som povedal WebStorm (editor používam v týchto dňoch) že JS súboru uhlové súborov a pomohlo mi zistiť problém.  Je to kód pre samotnej smernice:

angular.module("CDLApp").smernica("generalCdlErrorHandler", Funkcia() {

return {
obmedziť: "E",
nahradiť: pravda,

rozsah pôsobnosti: {
retrieveLastConfigurationError: "&"
},

šablóny:
'<div class = "upozorniť upozornenie-nebezpečenstvo" úloha = "upozornenie" ng-init = "doShowExpandedErrorDetails = true" ng-Zobraziť = "retrieveLastConfigurationError()">' +
"Tam bola chyba vstupno-výstupných operácií alebo iných. To sa zvyčajne stáva, pretože konfiguračný súbor s údajmi nie je možné " +
"našiel alebo konfiguračný súbor obsahuje nepresné informácie (ako je odkazovanie knižnice dokumentov " +
"že neexistuje).' +
' <br />' +
' <div ng-Zobraziť = "doShowExpandedErrorDetails">' +
' <href = "#" NG-kliknite = "doShowExpandedErrorDetails = ! doShowExpandedErrorDetails">' +
"Kliknite tu pre skrytie podrobností." +
' </a>: ' +
' <br />' +
' <vopred>{{retrieveLastConfigurationError() | JSON}}</vopred>' +
' <br />' +
' </DIV>' +
' <div ng-Zobraziť = "!doShowExpandedErrorDetails">' +
' <href = "#" NG-kliknite = "doShowExpandedErrorDetails = ! doShowExpandedErrorDetails">' +
"Rozbaľte kliknutím sem Podrobnosti o chybách." +
' </a>' +
' </DIV>' +
'</DIV>'
};
});

V podstate, Som vytvoriť nový prvok s názvom "generalCdlErrorHandler".  Je potrebné sprístupniť funkciu nazýva retrieveLastConfigurationError a to je spracované v rozsahu objektu.  Pravdepodobne mohol som len použiť nadradeného rozsahu, ale že cíti lenivý.  Ak niekto myslí, že som mal urobiť, že, Rád by som počul o tom v komentároch.

To bolo všetko v poriadku, ale nebolo nič dostať.  Žiadne chyby vyskočila v konzole (aspoň raz som opravené všetky chyby sx som vytvoril na ceste).  Jednoducho nemali dostať žiadny výstup zo smernice.  Išiel a pridal niektoré statický text pred ng-Zobraziť smernice a * urobil * tú. To ma napadlo, že možno smernice nesmel implicitne vytvoriť nové vars ako "doShowExpandedErrorDetails" alebo "ng-init" tam. 

Išiel som späť do HTML vidieť, keby som mal typ a tentoraz WebStorm mi pomohol.  Som mal boli okolo vo funkcii retrieveLastConfigurationError takhle:

<všeobecné-cdl-chyba-obsluha retrieveLastConfigurationError="CDLController.retrieveLastConfigurationError()">
</všeobecné-cdl--obslužný program chýb>

Ale to naozaj treba toto:

<všeobecné-cdl-chyba-Vyber-posledný-konfigurácia-chyba obsluhy = "CDLController.retrieveLastConfigurationError()">
</všeobecné-cdl--obslužný program chýb>

WebStorm bol dosť chytrý, aby vedieť, že to muselo byť rozdelené.  Ak to nemal túto nápovedu, Ja by pravdepodobne byť stále problémov to úsmev.  Zábava times!

Trik je to: Nielenže je názov smernice prvok rozdeleným slovom, Takže sú všetky atribúty môžete pridať k nemu.  Akonáhle som pridal pomlčky, to všetko fungovalo skvele.  Dan výučba stalo používať krátke názvy jednej, Takže neurobil pripojenie.

Dúfam, že to pomôže niekto.

</koniec>

undefinedVyberajte môj blog.

Nasledujte ma na stebėtų na http://www.twitter.com/pagalvin

HTTP 406 Chyba pri použití uhlové $http.get proti SharePoint ZVYŠOK koncové body

Aktualizácia: Marc AD ndersson poukázal na to, tento veľký kus info: http://blogs.Office.com/2014/08/13/JSON-Light-support-Rest-SharePoint-API-Released/. To vysvetľuje veľa :).

To môže byť niekedy najhoršie názov blogu! Anyhoo.

Zvyčajne robiť, všetky moje prototypovania proti O365 stupňa. Mám moje osobné stupňa tak, že nemusím obávať ovplyvňujúce niekto. Ako stranou-Pamätajte si, kedy nazývame vykonáva okolo virtuálnych strojov na našich laptopoch machom-SQL Server, IIS, rozhodovaní vs Hyper-V. VMWare? Anyhoo...

Mali vyvinuté aplikácie pomocou uhlového v tomto prostredí, ktoré má, okrem iného, this:

$http.Get(AdresaURLServera)
.úspech(Funkcia(údaje, stav, hlavičky, config) {

var getLinksResponse = údaje;

getLinksResponse.value.forEach(Funkcia(theResult) {

// a tak ďalej a tak penou

To bolo v poriadku len v dvoch rôznych SharePoint online prostredie. Avšak, keď môj kolega portovaný na inštanciu Cloudshare, on bol stále HTTP 406 chyba (ktorý bol prvýkrát, čo som kedy dostal ten, Takže... hurá, hádam). Som trochu výskumu a všimol si, že "Prijať" Hlavička bol preč. On-line služby SharePoint bol úplne spokojný s:

Prijať: Aplikácia/json

Ale cloudshare stupňa (čo je SP na prem, hostil na virtuálnom serveri) chcel klasické "Odate = ukecaný" pridané v aj:

Prijať: Aplikácia/json;Odata = podrobného

Opraviť to, pridali sme hlavičky ako také:

var config = {hlavičky: {
"Accept": "aplikácie/json;Odata = verbose "
}
};

$http.Get(AdresaURLServera,config)
.úspech(Funkcia(údaje, stav, hlavičky, config) {

var getLinksResponse = údaje;

getLinksResponse.value.forEach(Funkcia(theResult) {

// a tak ďalej a tak penou

Že sa zbavili 406, ale to tiež zmenil formát odpovede. To bolo viac... podrobného. (haha!) Ďalšie zmeny boli požadované, a tu je konečný výsledok:

var config = {hlavičky: {
"Accept": "aplikácie/json;Odata = verbose "
}
};

$http.Get(AdresaURLServera,config)
.úspech(Funkcia(údaje, stav, hlavičky, config) {

var getLinksResponse = údaje;

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

// a tak ďalej a tak penou

Len sa zmenil 30 minúte problém pre nás, tak my lucked von. Dúfajme, že niekto nájde to užitočné.

</koniec>

Postupy: Povoliť viac uhlové SharePoint webových častí na rovnakej stránke

Tento blog príspevky popisuje, ako môžete mať viac Angular.js založený SharePoint webových častí (odkazuje pomocou webovej časti editor obsahu) na rovnakej stránke. Som volanie webovej časti editor obsahu (CEWP) ktorý odkazuje JavaScript postavený s využitím rámca Angular.js "Uhlové webová časť."

Uhlová je zavádzací proces je super ľahké a len asi každý príklad nájdete na internety ide niečo takého:

<HTML ng-app = "MôjProgram">

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

</HTML>

Tento štiepi, Avšak, Ak chcete povoliť viaceré CEWP zastupujúci viac uhlové webových častí na rovnakej stránke. Uhlová bude automaticky len bootstrap proti prvej smernice ng-app to nájde – aspoň už uhlové verzia 1.3.6. Riešenie je pomerne jednoduché-manuálne namiesto štartovaciu svoj kód. Vyššie sa teraz zmení na niečo takého:

<telo>
<d
IV identifikácia =”bootstrapHere” ng-controller =”myController ako theController”>
<bla /><bla /><bla />
</DIV>
</telo>

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

<skript>
angular.Bootstrap(angular.element(document.getElementById(“bootstrapHere”)),["MôjProgram"]);
</skript>

V podstate, Namiesto použitia ng-app na prvok robiť vaše bootstrapping, si pohlavok ID na tento prvok. Potom, Použite bootstrap() metóda na uhlové sám kontrolovať bootstrapping procesu spustenia. Testoval som to s tromi rôznymi uhlové webovými časťami na rovnakej stránke a funguje to kúzlo.

</koniec>

undefinedVyberajte môj blog.

Nasledujte ma na stebėtų na http://www.twitter.com/pagalvin