Kategooria Arhiiv: Nurk

Teenindusandmeid otsa nurk direktiivide (Või, Õppida armastama sidekriipsud otsast jälle)

Mul on mõned apps et teha $http.get() kõned ja tahtsin võimalus näidata kenasti vormindatud tõrketeade peidetud kole tõrke üksikasjad, kuid kättesaadavad.  Põhimõtteliselt, See:

image

Ja siis kui kasutaja klikib viga, nad näevad rohkem infot:

image

Lihtne värk.  Kuna täpselt sama võimalikku viga saab kuvada ka haldus ekraani kui ka lõppkasutaja ekraani, selgelt nõudnud kohandatud nurk direktiivi.  MA  leidsin selle tasumata seeria artiklid (http://weblogs.asp.net/dwahlin/creating-custom-angularjs-directives-part-i-the-fundamentals) suur Dan Wahlin.  Pärast tema nõu, Ma väga kiiresti luua mõne <Hello-world> direktiiv ja kolis kellelegi mu keerulisem viga ekraan squeegee. I sattus natuke raske seda keerulisem direktiivile.  Õnnelikult, omamoodi juhus, Ma oleks öelnud WebStorm (Ma kasutan neid päevi toimetaja) JS faili tehti nurgeliste faili ja see aitas mul aru saada teema.  See on direktiivis tähist:

Angular.Module("CDLApp").direktiivi("generalCdlErrorHandler", funktsioon() {

edasi-tagasi {
piirata: "E",
Asenda: True,

reguleerimisala: {
retrieveLastConfigurationError: "&"
},

Mall:
'<div klassi = "alert alert-danger" roll = "Teavita" NG-init = "doShowExpandedErrorDetails = true" NG-show "retrieveLastConfigurationError =()">' +
"Ilmnes I/O tõrge või muu viga. See tavaliselt juhtub, sest konfiguratsiooni faili ei saanud " +
"leitud või konfiguratsioonifail sisaldab valeteavet (näiteks dokumenditeegi viitamine " +
"et pole olemas).' +
' <br />' +
' <div ng-Näita = "doShowExpandedErrorDetails">' +
' <href = "#" NG-vajuta = "doShowExpandedErrorDetails = ! doShowExpandedErrorDetails">' +
'Üksikasjade peitmiseks klõpsake siin.' +
' </a>: ' +
' <br />' +
' <Pre>{{retrieveLastConfigurationError() | JSON}}</Pre>' +
' <br />' +
' </DIV>' +
' <div ng-Näita = "!doShowExpandedErrorDetails">' +
' <href = "#" NG-vajuta = "doShowExpandedErrorDetails = ! doShowExpandedErrorDetails">' +
'Tõrke üksikasjad laiendamiseks klõpsake siin.' +
' </a>' +
' </DIV>' +
'</DIV>'
};
});

Põhimõtteliselt, Ma koostan uut elementi, mida nimetatakse "generalCdlErrorHandler".  See vajab juurdepääsu funktsiooni nimetatakse retrieveLastConfigurationError ja mida käsitletakse reguleerimisala objekti.  Ma ilmselt võiks just vanema ulatus, kuid mida tunneb laisk.  Kui keegi arvab, et ma oleks pidanud tegema, et, Oleks tore kuulda seda oma kommentaarides.

See oli kõik korras, Aga mul ei olnud midagi saada.  Nr vigu hüppasid üles konsool (vähemalt üks kord ma fikseeritud sx vead olen loonud mööda teed).  Ma lihtsalt ei saanud mingit väljundit direktiivi.  Ma läksin ja lisada mõned staatiline tekst enne direktiivi ng-show ja ma * ei * saada, et. See pani mind mõtlema, et ehk direktiivi ei tohtinud kaudselt luua uus vars nagu "doShowExpandedErrorDetails" või on "ng-init" seal. 

Ma läksin tagasi HTML näha, kui ma pidin tüüp ja seekord WebStorm aitas mind välja.  Ma möödaminnes sellist funktsiooni retrieveLastConfigurationError:

<Üldine cdl-Tõrkehaldur retrieveLastConfigurationError="CDLController.retrieveLastConfigurationError()">
</Üldine cdl-Tõrkehaldur>

Kuid seda tõesti vaja seda:

<Üldine cdl-Tõrkehaldur too-viimati-konfiguratsioon-error = "CDLController.retrieveLastConfigurationError()">
</Üldine cdl-Tõrkehaldur>

WebStorm oli piisavalt targad, et teavad, et see pidi olema sidekriipsuga.  Kui see ei olnud ette selle Vihje, Ma oleks ilmselt olema ikka tõrkeotsingu see naeratus.  Fun korda!

Trikk on see: mitte ainult on direktiiv elemendi nime sidekriipsuga, nii on teil lisada atribuute.  Kui lisasin kaks sidekriipsu, kõik töötas suur.  Dani juhendaja juhtus Kasuta ühtse, nii et ma ei teinud seoses.

Loodan, et see aitab keegi.

</lõpp>

undefinedTelli minu blogi.

Järgi mind vidistama kell http://www.twitter.com/pagalvin

HTTP 406 Viga kasutamisel nurgeliste $http.get vastu SharePointi ülejäänud lõpp-punktid

Värskendus: Marc AD ndersson märkis see suur tükk info: http://blogs.Office.com/2014/08/13/JSON-Light-Support-REST-SharePoint-API-released/. Mis seletab palju :).

See võib olla halvim pealkiri blogi postitus kunagi! Anyhoo.

Ma tavaliselt kõik minu prototüüpimiseks vastu O365 eksemplar. Mul on minu isiklik eksemplar, nii et ma ei peaks olema mures mõjutavate keegi teine. Nagu kõrvale-mäletad kui me nimetame ümber virtuaalarvutid läbi meie sülearvutid MOSS-SQL Server, IIS, Otsustades Hyper-V vs. VMWare? Anyhoo...

Mul oli arenenud app kasutades nurga selles keskkonnas, mis ei, muu hulgas, See:

$http.Get(serverUrl)
.edu(funktsioon(andmed, olek, päised, config) {

var getLinksResponse = andmed;

getLinksResponse.value.forEach(funktsioon(theResult) {

// ja nii edasi ja nii vaht

See töötas suurepäraselt kahest erinevaid SharePoint online keskkondades. Aga, Kuna kolleeg portinud see Cloudshare eksemplar, ta oli saada ka HTTP 406 tõrge (mis oli esimene kord, ma kunagi sain et üks, nii... Jee, Arvan). Me tegime natuke uurida ja märganud, "Nõustu" päise oli välja. SharePoint online oli täiesti rahul:

Aktsepteeri: taotlus/json

Kuid cloudshare eksemplari (mis on SP prem, virtual server võõrustas) tahtis klassikaline "odata = verbose" lisada ka:

Aktsepteeri: taotlus/json;odata = verbose

Kinnitada, et, lisasime päise sellisena:

var config = {päised: {
"Kinnita": "rakendus/json;odata = verbose'
}
};

$http.Get(serverUrl,config)
.edu(funktsioon(andmed, olek, päised, config) {

var getLinksResponse = andmed;

getLinksResponse.value.forEach(funktsioon(theResult) {

// ja nii edasi ja nii vaht

Mis lahti on 406, kuid seda muuta ka format vastamise. See oli rohkem... verbose. (haha!) Rohkem muudatusi oli vaja ja siin on lõpptulemus:

var config = {päised: {
"Kinnita": "rakendus/json;odata = verbose'
}
};

$http.Get(serverUrl,config)
.edu(funktsioon(andmed, olek, päised, config) {

var getLinksResponse = andmed;

getLinksResponse.d.Results.forEach(funktsioon(theResult) {

// ja nii edasi ja nii vaht

See ainult muutus on 30 hetke probleemi meile, nii me lucked. Loodetavasti keegi leiab see kasulik.

</lõpp>

Abi: Mitme nurga SharePointi Veebiosade lubamiseks samal lehel

See blogi postitusi kirjeldatakse, kuidas saab olla mitu Angular.js põhineva SharePointi veebiosade (via sisuredaktori veebiosa viitab) samal lehel. Ma helistan sisuredaktori veebiosa (CEWP) mis viitab JavaScript abil Angular.js raames on "nurgeline veebiosa."

Nurga 's bootstrap protsess on väga lihtne ja peaaegu iga näite leiate selle internets läheb midagi sellist:

<HTML ng-app = "myApp">

<blah /><blah /><blah />

</HTML>

See ei tööta, Aga, Kui soovite lubada mitu CEWP esindavad samal leheküljel mitu nurgeliste veebiosa. Nurga näidatakse ainult automaatselt bootstrap esimese ng-app direktiivi vastu see leiab – vähemalt nurgeliste nagu versiooni 1.3.6. Lahendus on päris lihtne – käsitsi bootstrap oma koodi asemel. Eespool nüüd muutub midagi sellist:

<keha>
<d
IV id =”bootstrapHere” NG-kontroller =”myController nagu theController”>
<blah /><blah /><blah />
</DIV>
</keha>

<script src =”//Ajax.googleapis.com/Ajax/libs/angularjs/1.3.6/Angular.js”></skripti>

<skripti>
Angular.Bootstrap(Angular.element(document.getElementById(“bootstrapHere”)),['myApp']);
</skripti>

Põhimõtteliselt, selle asemel kasutatakse ng-app element teha oma eellaadimisel, sa laksu peale elemendi ID. Seejärel, Kasutage selle alglaaduri() meetodi kohta nurk ise kontrollida ning eellaadimisel töödelda käitusaja. Olen testinud kolme erineva nurga veebiosadega ühel lehel ja see toimib võlu.

</lõpp>

undefinedTelli minu blogi.

Järgi mind vidistama kell http://www.twitter.com/pagalvin