Trouble shooting Patarimas kampinis direktyvų (Arba, Išmokime mylėti brūkšnelius visame vėl)

Turiu kelias programas kad padaryti $http.get() skambučius ir aš norėjau parodyti gražiai formatuotą klaidos pranešimą su bjaurusis klaidos informacija paslėpti, kad, bet prieinama.  Iš esmės, tai:

image

Ir tada jei vartotojas paspaudžia ant klaidos, jie mato daugiau informacijos:

image

Paprasti daiktai.  Kadangi tiksli pačią galimą klaidą gali būti administracinės ekrano, tiek galutinio vartotojo ekrano, jis aiškiai raginama pasirinktinį kampinis direktyvą.  AŠ  nustatėme, kad šis neįvykdyti ankstesnių serijų straipsnių (http://weblogs.asp.net/dwahlin/creating-custom-angularjs-directives-part-i-the-fundamentals) iš didžiojo Dan Wahlin.  Po jo patarimo, Aš labai greitai sukūriau tam <Sveiki pasaulis> direktyva ir perkeltas į mano sudėtingesnis klaidos ekranas valytuvas. Išbėgau į šiek tiek problemų su Šidirektyva sudėtingesnis.  Laimingai, tarsi netyčia, Man buvo pasakyta, WebStorm (redaktorius galiu naudoti šių dienų) kad JS failą buvo kampinis failą ir ji man padėjo išsiaiškinti problemą.  Tai yra kodas, pačioje direktyvoje:

angular.Module("CDLApp").Direktyvos("generalCdlErrorHandler", funkcija() {

grįžti {
apriboti: "E",
pakeisti: tiesa,

taikymo sritis: {
retrieveLastConfigurationError: "&"
},

šablonas:
'<div class = "pavojaus perspėjimo-pavojaus" vaidmenį = "įspėti" NG-init = "doShowExpandedErrorDetails = true" NG-Rodyti = "retrieveLastConfigurationError()">' +
"Įvyko įvesties/išvesties klaida ar kita klaida. Tai dažniausiai atsitinka todėl, kad konfigūracijos duomenų failas negali būti " +
"rasti ar konfigūracijos failas yra netiksli informacija (pvz., nuorodas į dokumentų biblioteką, kurioje " +
"kad neegzistuoja).' +
' <br />' +
' <div ng-Rodyti = "doShowExpandedErrorDetails">' +
' <a href = "#" NG-spustelėkite = "doShowExpandedErrorDetails = ! doShowExpandedErrorDetails">' +
"Spauskite čia Norėdami slėpti detales." +
' </a>: ' +
' <br />' +
' <Pre>{{retrieveLastConfigurationError() | JSON}}</Pre>' +
' <br />' +
' </DIV>' +
' <div ng-Rodyti = "!doShowExpandedErrorDetails">' +
' <a href = "#" NG-spustelėkite = "doShowExpandedErrorDetails = ! doShowExpandedErrorDetails">' +
"Spauskite čia Norėdami išplėsti Išsami klaidos informacija." +
' </a>' +
' </DIV>' +
'</DIV>'
};
});

Iš esmės, Aš sukurti naujas elementas vadinamas "generalCdlErrorHandler".  Ji turi prieigą prie funkcija vadinama retrieveLastConfigurationError ir kad yra tvarkomas apimtį objekto.  Aš tikriausiai galėjo tiesiog pasinaudoti tėvų sritį, bet kad mano tingus.  Jei kas nors mano, aš turėjo padaryti, Aš norėčiau išgirsti apie tai komentaruose.

Tai buvo viskas gerai, bet aš ne vis nieko.  Be klaidų popped į konsolės (ne rečiau kaip kartą poprawiłem aš sukūriau pakeliui sx klaidų).  Aš tiesiog ne gauti bet kuriame išėjime, iš Direktyvos.  Aš ir pridėti statinį tekstą prieš ng-Rodyti direktyvos ir I * ar * gauti, kad. Tai privertė mane galvoti, kad galbūt direktyva nebuvo leista netiesiogiai sukurti naują vars kaip "doShowExpandedErrorDetails" ar "ng init" ten. 

Aš grįžau į HTML pamatyti, jei aš tipo ir šį kartą WebStorm padėjo atlikti.  Aš turėjo buvo išlaikęs retrieveLastConfigurationError funkcija, kaip tai:

<General-cdl-klaidos-apdorojimo retrieveLastConfigurationError="CDLController.retrieveLastConfigurationError()">
</General-cdl-klaidos-apdorojimo>

Bet tikrai reikia tai:

<General-cdl-klaidos-apdorojimo gauti-paskutiniais-konfigūracijos-klaida = "CDLController.retrieveLastConfigurationError()">
</General-cdl-klaidos-apdorojimo>

WebStorm buvo pakankamai gudri, kad žinau, kad jis turėjo kelti žodžius, skaičių.  Jei ji nebuvo pateikta kad užuomina, Aš taip greičiausiai būti dar problemų tai šypsena.  Įdomus kartus!

Pavyko tai: ne tik yra direktyva elemento pavadinimą brūkšnelį, taip yra visais atributais į jį įtraukti.  Kai aš papildomas brūkšnelius, Viskas dirbo puikiai.  Dan pamoka teko naudoti vieną sutrumpinimo, todėl aš nepadarė ryšys.

Tikiuosi, kad tai padės kam nors.

</pabaigos>

undefinedPrenumeruoti savo dienoraštį.

Sekite mane Twitter ne http://www.twitter.com/pagalvin

IE9 Tikrai nepatinka kai jums nuorodą su savo <tarpą> Žymos

Aš pateko į blogą įprotį naudoti "Chrome" visą laiką.  Tai "blogai", nes aš sukurti daiktai tikrai turi vykdyti daug kitos žiniatinklio naršyklės, įskaitant, Deja IE8.  Mano darbo kompiuteryje turi IE9 standartas dėl kokios nors priežasties) ir aš tiesiog daro greitai sužinoti tai, ką atrodė kaip ir... tai buvo ne gana.  Pvz.:

image

Jis * turi * tokį:

image

 

Ne tik ji buvo ne, bet mano paspaudimai nebuvo šaudymo.  (Dauguma jų, bet kokiu atveju).

Vizualiai, jis atrodė taip, tarsi viskas pradėjo eiti nuo bėgių – "Papildomas nustatymas" nuorodą.  Aš kasti į dalis, HTML ir nustatė, kad aš turėjo šią eilutę:

<span class = "glyphicon glyphicon-naujas-langas" />

Kad atrodo kaip leistinas sintaksė ("" Chrome "versija 40.02214.94 m"yra gerai su ja). Aš ir jį pakeitė vistiek, kaip parodyta:

<span class = "glyphicon glyphicon-naujas-langas"></tarpą>

Kuris ištaisę klaidą.

Tokių mažų mažai ką padarė tokia didžiulė netvarka ekranas.  Įdomus kartus.

Tai atsitiko, kad greitai nustatyti, bet tai taip pat tos rūšies dalykas, kad tik gauna stuburo iš sureguliuotos kai jūs matote jį.  Yra daugiau nei 500 eilutės HTML ¹is mažai admin ir jūs tiesiog nenorite rasti sau kasti tarp šių piktžolių, Kada nors šypsena.

</pabaigos>

undefinedPrenumeruoti savo dienoraštį.

Sekite mane Twitter ne http://www.twitter.com/pagalvin

HTTP 406 Klaida, kai naudojant kampinis $http.get nuo SharePoint poilsio hipotezes

Atnaujinimas: Marc AD ndersson nurodė šį puikus gabalas, info: http://blogs.Office.com/2014/08/13/JSON-Light-support-Rest-SharePoint-API-Released/. Tai paaiškina daug :).

Tai gali būti blogiausiu žinutę pavadinimas kada nors! Anyhoo.

Paprastai aš visus mano prototipų prieš O365 egzempliorius. Aš turiu mano asmens instancijos, kad man nereikės nerimauti dėl įtakos kas nors. Kaip panaikinti – prisiminti Kada mes vadiname atliktas aplink virtualios mašinos mūsų nešiojamieji kompiuteriai su MOSS – SQL serverio, IIS, SPRENDŽIAMOSIOS Hyper-V vs. VMWare? Anyhoo...

Man buvo sukurtas naudojant judesio kiekio šioje aplinkoje, kuri nėra app, be kita ko, tai:

$http.get(serverUrl)
.sėkmės(funkcija(duomenų, statusas, antraštės, Config) {

var getLinksResponse = duomenys;

getLinksResponse.value.forEach(funkcija(theResult) {

// ir taip puta

Tai dirbo tik baudą dviejų skirtingų SharePoint online aplinkoje. Tačiau, Kada mano kolega jis perkeltas į Cloudshare instancijos, jis buvo gauti, HTTP 406 klaida (kuris buvo pirmą kartą aš kada nors gavo, kad vienas, Taigi... yay, tikriausiai). Mes padarėme šiek tiek mokslinių tyrimų ir pastebėjau, kad "Priimti" antraštė buvo ne. SharePoint internete buvo visiškai laimingas su:

Priimti: paraiškos/json

Bet cloudshare atveju (kuri yra SP prem, vyko virtualiame serveryje) norėjo klasikinis "odata = kalbantys" įrašyti, taip pat:

Priimti: paraiškos/json;oData = kalbantys

Nustatyti, kad, Mes pridėjome antraštėje tokiais:

var config = {antraštės: {
"Priimti": "paraiškos/json;oData = kalbantys "
}
};

$http.get(serverUrl,Config)
.sėkmės(funkcija(duomenų, statusas, antraštės, Config) {

var getLinksResponse = duomenys;

getLinksResponse.value.forEach(funkcija(theResult) {

// ir taip puta

Kad atsikratyti, kad 406, Tačiau ji taip pat pakeitė formatą, atsakymas. Tai buvo daugiau... kalbantys. (Haha!) Daugiau pakeitimų buvo reikalaujama ir Štai galutinis rezultatas:

var config = {antraštės: {
"Priimti": "paraiškos/json;oData = kalbantys "
}
};

$http.get(serverUrl,Config)
.sėkmės(funkcija(duomenų, statusas, antraštės, Config) {

var getLinksResponse = duomenys;

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

// ir taip puta

Tai tik pasuko į a 30 minutę problema mums, Taigi mes lucked. Tikimės, kad kas nors mano, kad tai naudinga.

</pabaigos>

"Kaip?": Įgalinti kelias kampinis SharePoint žiniatinklio dalis tame pačiame puslapyje.

Šiame dienoraštyje pranešimų aprašoma, kaip jūs galite turėti kelis Angular.js pagal SharePoint žiniatinklio dalys (nuorodos per turinio rengyklės žiniatinklio dalį) tame pačiame puslapyje.. I 'm calling turinio rengyklės žiniatinklio dalį (CEWP) tyta JavaScript pastatytas naudojant Angular.js sistemą yra "kampinis žiniatinklio dalis."

Judesio kiekio 's įkrovos procesas yra itin paprasta ir beveik kiekvieną pavyzdį rasite internetas eina kažką panašaus į tai:

<HTML ng-app = "mano">

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

</HTML>

Tai skyla, Tačiau, Jei norite įgalinti kelis CEWP atstovaujančių kelias kampinis žiniatinklio dalis tame pačiame puslapyje.. Judesio kiekio bus tik automatiškai įkrovos nuo pirmosios ng-app direktyvos jis nustato – bent kaip ir kampinis versija 1.3.6. Sprendimas yra labai paprastas-rankiniu būdu įkrovos kodą vietoj. Aukščiau dabar pasikeičia į kažką panašaus į tai:

<įstaiga>
<d
IV id =”bootstrapHere” NG-controller =”myController kaip theController”>
<blah /><blah /><blah />
</DIV>
</įstaiga>

<myController kaip theController”//Ajax.googleapis.com/Ajax/libs/angularjs/1.3.6/angular.js”></scenarijų>

<scenarijų>
angular.Bootstrap(angular.element(document.getElementById(“bootstrapHere”)),["mano"]);
</scenarijų>

Iš esmės, Užuot naudoję ng-app elemente daryti savo Bootstrap, jums slap ant elemento ID. Tada, Naudokite apie bootstrap() metodas, kampinis save kontroliuoti Bootstrap apdoroti run-time. Aš išbandyti tai su trijų skirtingų kampinis puslapio dalis į tą patį puslapį ir jis veikia žavesio.

</pabaigos>

undefinedPrenumeruoti savo dienoraštį.

Sekite mane Twitter ne http://www.twitter.com/pagalvin

New Jersey motorinių transporto priemonių Komisija laikosi kitas auka

Taigi, mano sūnus, laikomos neatliktomis bitų gauti savo vairavimo leidimą.  Vakar, vidurio ryte, jis sunkvežimiai iki Oakland NJ ją gauti.  Jis pasireiškia ten, užpildų, jo dokumentų yra išduotas neantspauduoto leidimas ir sužino, kad jis dabar turi eiti į dar vienas MVC vietoje imtis savo akių bandymas.  Nes, Matyt, aukštos kvalifikacijos akių testeriai ne tik gyventi bet kur, Taigi NJ MVC reikia eiti kur talentas yra.  Arba, Gal tai todėl, kad jie taip Hamiltono filosofija iš konsolidacijai?  Kiek Hamiltonas manė, finansinių ir gamybos konsolidavimo buvo labai svarbūs ateities ekonominė galia ir Respublikos, gal NJ MVC mano, jie turi konsoliduoti akių tyrimų talentų dėl būsimų NJ MVC?  Gal tai neapsakomas plano dalis?  Deja, Turiu tik klausimų apie šią temą ir jokio atsakymo. 

Šie Oakland patarimai, žmona ir sūnus sunkvežimis savo kelią žemyn, Lodi, NJ su Lodi neantspauduoto leidimas.  Lodi gali turėti blogiausias pastatyti bet kurios NJ MVC vietos.  Ir, nes jie taip pat priimančiosios kai kurių menki dar labai trokštama akių bandymų mašinos ir akių tyrimai specialistų, jie pritraukia supplicants, visų juostų, atspalvių, švietimo ir gawkers.  Mano sūnus dirba savo kelią per labirintą linijų ir "never-look-them-in-the-eye" NJ MVC specialistų nurodymais ir pagaliau atvyksta akis, testavimo linija.  Jie dabar mokosi kad Oakland asmuo padarė klaidą neantspauduoto leidimo.  Jis neteisingai užpleištuotos socialinio draudimo numeris, išleidimą į yra "8" vietoj "2" – vienas iš skaitmenų.  NJ DMV asmuo žinojo nes kada ji ištraukiami kad negerai SS# kompiuteryje, nėra rodomi mano Sūnaus vardas.  Žmona ir sūnus sako, – AK..., tai neteisingai, jums reikia '2' ten vietoj "8." "  Ką daugelis, galbūt kiekvienas sąžiningai besidomintis asmuo būtų galima tikėtis šiuo metu yra NJ MVC žmogui tiesiog ištaisyti skaičių jie įėjo į kompiuterį.  Ha! Kvailas!  ne, Vietoj to jis buvo paprašyta pateikti savo socialinės apsaugos kortelę.  Let's nutolti akimirkai ir mano, kad siekiant gauti leidimo neantspauduoto į pirmąją vietą, jis jau jei JAV pasą, taip pat Niu Džersio gimimo liudijimą ir laiπkas paraπytas jam savo namų adresu.   Jo motina yra su juo, dalijasi savo vardą, Adresas, jo aukštis (bet deja, ne jo skonio sci-fi movies) ... viskas, mano sūnus yra gerai ir tikrai identifikuota kaip gyvenimas ilgai gyvena šių JAV Valstijų ir iš tiesų, New Jersey pati bet kokia priemonė, jūs galite įsivaizduoti.  Jei NJ MVC asmuo būtų tiesiog nustatytos klaidos, Oakland asmuo padarė, kompiuteris būtų ištraukė mano sūnaus informaciją ir kad būtų buvę pabaigos istorija.  Bet vėl, kvailas!  Jie negali padaryti. Vietoj, NJ MVC norinte socialinės apsaugos kortelę dabar. 

Taigi, žmona ir sūnus eiti namo ją gauti ir grąžinti.  Ir galų gale, jis gauna jo leidimą.

Tai yra trys įvairių kelionių į NJ MVC per vieną dieną.  Gauti jo leidimą.  Prireikė beveik 6 valandas nuo pradėti iki pabaigos.  Tai yra mano sūnaus Įvadas į kurias sodo narė.

NJ MVC yra aiškiai sutrikusi. 

</pabaigos>

Kampinis nesugeba įkrovos į IE9

Aš žaisti su Angular.js per pastaruosius ilgai kartu ir už gyvenimą man, I couldn't get mano kampinis apps, pradėti IE9.  Visi jie puikiausiai veikia ir IE11 bet IE9 tiesiog rodo riestiniai ir panašių bitai.

Aš Ieškota aplink ir negalėjo rasti bet skųstis apie savo problemą.  Jis dirbo gerai, "Chrome", IE11, tik ne IE9.

Aš buvo išmesti dėl to, kad IE konsolės buvo duoti man klaidos kaip šis:

SEC7111: HTTPS saugumas yra pavojuje, iš res://ieframe.dll/forbidframing.htm

Ši klaida buvo man galvoti, ten buvo kai kurių problemų atsisiunčiant į kampinis arba kitų bibliotekomis, kurios man reikia.  Kaip paaiškėjo, tai nebuvo problema.

Iš išnyra aplink internetas, Aš pagaliau sužinojau, kad man reikia ieškoti frazė buvo "įkrovos" ir kad jis atrodė kaip Bootstrap buvo nevykdo.  Galiausiai, mano problema buvo, kad aš turėjo papuošti savo <HTML> turinčioje atributą ng-app, kaip ir:

<HTML ng-app = "MatrixApp">

Na, kad ne darbo IE9.  Vietoj, Aš apvyniotas ant groteliu, HTML, ir <įstaiga> viduje div ir nuorodos MatrixApp tokiu būdu.

Problema išspręsta.

Tikimės, kad tai taupo kas nors kai pucia.

</pabaigos>

Kurti pasirinktines SharePoint formas be puslapio šabloną

Mano kolega, Lauren Jones, parašė iki Nicos pateiktus kaip sukurti vartotojo duomenų įvedimo formą naudojant SharePoint Designer.  Tai ne visai "naujo po saule", tačiau yra šiek tiek pasukti.  Savo žodžius:

Pasirinktinių formų kūrimas yra tiesiai į priekį daryti SharePoint Designer, eikite į savo sąrašą ir juostelės meniu pasirinkti "sąrašas’ ir sukurti naują formos šabloną.

Tai veikia gerai, jei norite, kad jūsų formos turi būti pridėtas prie jūsų puslapio, bet ką daryti, jei turite naudojimo atveju sukurti formą, iššokantį langą arba yra atskira be SharePoint "Chrome". Turėjau būtent šį naudojimo atveju, Aš norėjau į pasirinktinį stilių formą, tada naudoti tą formą iškylančių div inline puslapyje.

Nenusiminkite, taip, tai nėra, kad intuityvi bet gana lengva pasiekti.

Jūs galite perskaityti visą informaciją čia: http://www.bigapplesharepoint.com/pages/View-An-Insight.aspx?BlogID=55&rtitle=customforms&rsrouce=pgblog ir jūs galite matyti jį veikia apie naudojant paslaugas mūsų Big Apple SharePoint svetainės paslaugų puslapyje "Susisiekite su mumis dėl daugiau informacijos" saitas (http://www.bigapplesharepoint.com/services).

Lauren rašo daug neblogai UX ir prekės ženklo.  Jūs galite pamatyti daugiau čia rašyti čia: http://www.bigapplesharepoint.com/team?showExpertName=Lauren%20Jones.

</pabaigos>

Blaško dizainas ir girtas apie funkcija Coolaid

Mano kolega, Lauren Jones (https://twitter.com/laurenjones02) parašė trumpą straipsnyje kalbama apie tai, kaip pernelyg sudėtinga SP rollouts yra labai sunku apie galutiniams vartotojams.  Tai tarsi akivaizdu, taip, bet tai lengva man pasakyti, kad po to, kai aš organizavo daug sudėtingų rollouts dalykų neparuošti galutiniams vartotojams per metus.

Čia yra raktas "grafikas:

Prieš penkerius metus, Kada aš išlenda SharePoint organizacijai pirmą kartą su pirmiausia tampa bendradarbiavimo platforma ir pakeisti dalį diskai, Mes taip pat pristatė socialinės bei naujienų informacijos santraukas per RSS, Mano svetainės ir profiliai, ir Folksonomia žymėjimas. Nereikia nė sakyti, tai buvo daug galutiniams vartotojams priimti vieną smigimas. Nors ten buvo sėkmingas su priėmimo dokumentų valdymo ir profiliai, RSS ir žymėjimas buvo mažiau sėkmingai ir tai buvo tikrai nes pokyčių valdymo komunikacijos ir mokymo. Mes negalime padaryti tai vienu metu. Atsižvelgiant mažiau yra daugiau požiūrį ir atleidžiantis funkcionalumą etapais yra lengviau galutiniams vartotojams priimti ir priimti.

Šis straipsnis primena kitą bitų aš skaityti Kris Gale susiję su gija 's funkcijų rinkinys, “Vienas kainuoja inžinierių ir produkto vadybininkai nelaikau.”

Jei turite siaubo istorija ar sėkmės istorija pasidalinti, Tikiuosi, jums bus tai komentaruose Big Apple svetainėje.

</pabaigos>

Savaitės apžvalga – Liepos 13, 2014

I už xpost tai čia per pastaruosius savaitgalį. 

Štai į 3Rd straipsniu serija ten, kur rašau apie dienoraščio ir interneto straipsnių, kurie buvo ypač įdomu su manimi per paskutinę savaitę arba tiek.  Šią savaitę įrašas iš serijos pabrėžia du CodePlex projektus galimą InfoPath pakeitimo ir tvarkyti teises su SharePoint, Naujienos apie palydovus, dar kitas JavaScript sistemą ir linkteliu į Ada Babbage ir jos vaidmenį – kompiuterių istorija.

Jūs galite perskaityti čia: http://www.bigapplesharepoint.com/pages/View-An-Insight.aspx?BlogID=93&rsource=pgblog&rtitle=roundup

</pabaigos>

Rodyti CAML užklausų realiu laiku su ULS Viewer

Mano kolega, Ashsih Patel, parašė iki Nicos pateiktus aprašoma, kaip pamatyti CAML už įvairių SP užklausia, atsitikti vykdant veiklą realiu laiku naudojant ULS žiūrovas.

Štai Įvadas:

Ar kada nors norite sužinoti kas CAML užklausų vykdomi iš SharePoint serverio?

Na, ir mokymosi tikslas, tai nėra bloga idėja. vis dėlto, SQL Profiler padeda mums išspręsti daug problemų.

Gali būti produktai ten bet I figured out būdas tai padaryti be išlaidų papildomų bucks! Ir Štai...

Galite skaityti visa tai čia: http://www.bigapplesharepoint.com/pages/View-An-Insight.aspx?BlogID=68&rsource=pgblog&rtitle=caml.

</pabaigos>