Mae gennyf ychydig o apps $http.get hwnnw yn gwneud() eisiau galw a allu dangos neges gwall ddel wedi'i fformatio gyda manylion y gwall hyll cudd, ond hygyrch. Yn y bôn, hwn:
Ac yna os bydd y defnyddiwr yn syrthio i'w le ar y gwall, maent yn gweld mwy o wybodaeth:
Pethau syml. Ers y gall yr union un camgymeriad posibl yn ymddangos yn y sgrin gweinyddol yn ogystal â sgrîn defnyddiwr terfynol, Roedd yn amlwg yn galw am Gyfarwyddeb onglog personol. Rwy'n Roedd hyn yn cyfres eithriadol erthyglau (http://weblogs.asp.net/dwahlin/creating-custom-angularjs-directives-part-i-the-fundamentals) gan fawr Dan Wahlin. Yn dilyn ei gyngor, Gyflym iawn creu yr <Helo byd> Cyfarwyddeb a symud ymlaen at fy squeegee arddangos gwall mwy cymhleth. Yr wyf yn rhedeg i ychydig o drafferth gyda'r Gyfarwyddeb hon mwy cymhleth. Hapus, math o hap a damwain, Roedd wrthyf WebStorm (Golygydd y defnyddiaf y dyddiau hyn) bod y ffeil JS ffeil onglog, ac fe 'm helpodd ffigur allan y mater. Mae hyn yn y Cod ar gyfer y Gyfarwyddeb ei hun:
angular.module("CDLApp").Gyfarwyddeb("generalCdlErrorHandler", swyddogaeth() {
dychwelyd {
cyfyngu ar: "E",
cymryd lle: wir,
cwmpas: {
retrieveLastConfigurationError: "&"
},
templed:
'<dosbarth DIV = "rhybuddio rhybudd perygl" rôl = "rhybuddio" ng-init = "doShowExpandedErrorDetails = wir" Sioe ng = "retrieveLastConfigurationError()">' +
' Roedd gwall I/O neu eraill gwall. Mae hyn fel arfer yn digwydd oherwydd na ellid ffeil data ffurfweddu ' +
' canfod neu Mae'r ffeil ffurfweddu yn cynnwys gwybodaeth anghywir (megis cyfeirnodi Llyfrgell ddogfen ' +
' nad yw'n bodoli).' +
' <br />' +
' <DIV ng-sioe = "doShowExpandedErrorDetails">' +
' <href = "#" Cliciwch ng = "doShowExpandedErrorDetails = ! doShowExpandedErrorDetails">' +
'Cliciwch yma i guddio manylion.' +
' </1>: ' +
' <br />' +
' <cyn>{{retrieveLastConfigurationError() | json}}</cyn>' +
' <br />' +
' </div>' +
' <DIV ng-sioe = "!doShowExpandedErrorDetails">' +
' <href = "#" Cliciwch ng = "doShowExpandedErrorDetails = ! doShowExpandedErrorDetails">' +
'Cliciwch yma i ehangu manylion y gwall.' +
' </1>' +
' </div>' +
'</div>'
};
});
Yn y bôn, Yr wyf yn creu elfen newydd o'r enw "generalCdlErrorHandler". Mae angen mynediad i swyddogaeth a elwir retrieveLastConfigurationError, ac ymdrinnir â hynny yn y gwrthrych cwmpas. Mae'n debyg mai gallai dim ond defnyddiais cwmpas y rhiant, ond mae hynny'n deimlad yn ddiog. Os yw unrhyw un yn credu dylai wedi gwneud hynny, Byddwn wrth fy modd i glywed am hynny yn y sylwadau.
Roedd hyn yn iawn, ond doeddwn i ddim yn cael unrhyw beth. Unrhyw wallau yn codi dro ar ôl yn y Consol (o leiaf unwaith Sefydlog yr holl gamgymeriadau sx rwy'n creu ar hyd y ffordd). Dim ond doeddwn i ddim yn cael unrhyw allbwn o'r Gyfarwyddeb. Aeth ac yn ychwanegu rhai testun Sefydlog cyn y Gyfarwyddeb ng-sioe a * oedd * yn cael. Roedd hyn yn gwneud imi feddwl bod efallai nad oedd y Gyfarwyddeb yn caniatáu ymhlyg creu vars newydd fel "doShowExpandedErrorDetails" neu "ng-init" yno.
Es yn ôl i HTML i weld os cefais math a'r tro hwn WebStorm helpodd fi. Roedd wedi bod yn pasio yn y swyddogaeth retrieveLastConfigurationError fel hyn:
<Cyffredinol-cdl-gwall-triniwr retrieveLastConfigurationError="CDLController.retrieveLastConfigurationError()">
</Cyffredinol-cdl-gwall-triniwr>
Ond mewn gwirionedd roedd angen i hyn fod:
<Cyffredinol-cdl-gwall-triniwr adalw-olaf-ffurfweddu-gwall = "CDLController.retrieveLastConfigurationError()">
</Cyffredinol-cdl-gwall-triniwr>
Roedd WebStorm yn ddigon call i wybod ei bod yn gorfod cael eu cysylltnodi. Os nad oedd wedi darparu awgrym hwnnw, Byddai wyf fwy na thebyg yn dal datrys problemau hyn . Amser hwyl!
Y gamp yw hyn: Nid yn unig y mae yr enw elfen Gyfarwyddeb cysylltnodi, Felly mae unrhyw nodweddion ydych yn ychwanegu at ei. Unwaith yr ychwanegodd y cysylltnod, hyn i gyd yn gweithio'n iawn. Enillodd tiwtorial a ddigwyddodd i ddefnyddio enwau un byr, felly doeddwn i ddim yn gwneud y cysylltiad.
Hope mae hyn yn helpu rhywun.
</diwedd>
Dilynwch fi ar Twitter yn http://www.twitter.com/pagalvin