-
Fórumok
PROHARDVER! - hardver fórumok
Notebookok TV & Audió Digitális fényképezés Alaplapok, chipsetek, memóriák Processzorok, tuning Hűtés, házak, tápok, modding Videokártyák Monitorok Adattárolás Multimédia, életmód, 3D nyomtatás Nyomtatók, szkennerek Tabletek, E-bookok PC, mini PC, barebone, szerver Beviteli eszközök Egyéb hardverek PROHARDVER! BlogokMobilarena - mobil fórumok
Okostelefonok Mobiltelefonok Okosórák Autó+mobil Üzlet és Szolgáltatások Mobilalkalmazások Tartozékok, egyebek Mobilarena blogokIT café - infotech fórumok
Infotech Hálózat, szolgáltatók OS, alkalmazások SzoftverfejlesztésGAMEPOD - játék fórumok
PC játékok Konzol játékok MobiljátékokLOGOUT - lépj ki, lépj be!
LOGOUT reakciók Monologoszféra FototrendFÁRADT GŐZ - közösségi tér szinte bármiről
Tudomány, oktatás Sport, életmód, utazás, egészség Kultúra, művészet, média Gazdaság, jog Technika, hobbi, otthon Társadalom, közélet Egyéb Lokál PROHARDVER! interaktív
-
Frissítve: 2014-02-25 10:20 Téma összefoglaló
JavaScript != Java (A JavaScript nem összekeverendő a Javával, két különböző programozási nyelvről van szó!)
Új hozzászólás Aktív témák
-
bandi0000
nagyúr
Melyik utasítással lehet egy karaktarláncot megfordítani ?
Nem találom .
-
bandi0000
nagyúr
-
bandi0000
nagyúr
-
bandi0000
nagyúr
Nem tudtok ajánlani valami jó és egyszerű Text editort?
Kb annyi és olyan elem kellene mint itt a ph-n, viszont nem bootstrap alapú, mert Angular Materialt használom
Korábban martonx ajánlotta a CkEditor-t, de kicsit overkillnek érzem ehhez a projekthez,plusz elég sokat bogarászok mire megtalálom hogy kell 1-1 beállítást megcsinálni
-
bandi0000
nagyúr
Szerintetek Angularba "komoly" appban mennyire állja meg a helyét az olyan megoldás, hogy egymásba ágyazom a regisztrációt és a beléptetést is
Ugye, úgy néz ki a dolog, hogy van egy dialog componemsem, abban pedig selectorral illesztem be a regisztráció vagy a bejelentkezés form komponensét
És most vettem észre, hogy visszafele nem tudok kommunikálni, tehát ha regisztrál a user, akkor se nem tudom átváltani a felületet login-re, és se nem tudok visszafele adni adatot
Így 1.0 verzióban azt csináltam, hogy egymásba ágyaztam a regisztrációnál a 2 service hívást, sikeres regisztráció után meghívja a beléptetést, de ez így elég hoki megoldásnak tűnik, pláne, hogy hibát se tudok kezelni, bár elvileg nem is lehetne, mert a regisztrációs adatokat használja beléptetésnél ism de akkor is
2.0 refatorba arra gondoltam, hogy akkor 1 dialog lenne és benne 2 divvel belerakva mindkét form, nyilván *ngIf-el elválasztva, és így talán normálisabban lehetne megoldani, de még ez se tűnik annyira jónak
Bocs a sok apró kérdésért, de végre egy viszonylag "normálisabb" dolgot akarok összerakni, és tapasztalat híján nem tudom mik a best practice-k
(#7766) petyus_ : Na akkor ezt majd megnézem egy kis refactorral
köszönöm Na igazából rájöttem, maradjon itt az utókornak + nekemi is, ha elfelejtem
Tök jól meg van oldva, mert bármelyik componensből be lehet zárni a dialogot, csak el kell kérni a referenciáját a dialognak
private dialogRef: MatDialogRef<AccountModalComponent>ürüm az ürümben, hogyha meghívom a dialofRef.close() metódust, akkor bármit vissza lehet adni benne, annak a komponensnek, amelyik megnyitotta a dialogot
-
bandi0000
nagyúr
Ha az a cél, hogy a regisztrált felhasználó egyből be is legyen léptetve, akkor az API-d register action-je akár vissza is küldheti egyből a tokent (nem tudom, hogy oldod meg a logint, gondolom jwt-vel, azt visszaadhatja a register method is), de ez csak egy tipp így hirtelen, működni működik, de nem tudom hogy szokták ezt megoldani.
Igen ezen is gondolkodtam, talàn lehet ez lenne a legjobb kompromisszum
-
bandi0000
nagyúr
Szerintetek Angularba "komoly" appban mennyire állja meg a helyét az olyan megoldás, hogy egymásba ágyazom a regisztrációt és a beléptetést is
Ugye, úgy néz ki a dolog, hogy van egy dialog componemsem, abban pedig selectorral illesztem be a regisztráció vagy a bejelentkezés form komponensét
És most vettem észre, hogy visszafele nem tudok kommunikálni, tehát ha regisztrál a user, akkor se nem tudom átváltani a felületet login-re, és se nem tudok visszafele adni adatot
Így 1.0 verzióban azt csináltam, hogy egymásba ágyaztam a regisztrációnál a 2 service hívást, sikeres regisztráció után meghívja a beléptetést, de ez így elég hoki megoldásnak tűnik, pláne, hogy hibát se tudok kezelni, bár elvileg nem is lehetne, mert a regisztrációs adatokat használja beléptetésnél ism de akkor is
2.0 refatorba arra gondoltam, hogy akkor 1 dialog lenne és benne 2 divvel belerakva mindkét form, nyilván *ngIf-el elválasztva, és így talán normálisabban lehetne megoldani, de még ez se tűnik annyira jónak
Bocs a sok apró kérdésért, de végre egy viszonylag "normálisabb" dolgot akarok összerakni, és tapasztalat híján nem tudom mik a best practice-k
(#7766) petyus_ : Na akkor ezt majd megnézem egy kis refactorral
köszönöm -
bandi0000
nagyúr
Kipróbáltam most a te validátorodat, és nekem jól működik.
Így néz ki a html:
<mat-form-field class="w-100"><mat-label>Name</mat-label><input type="text" id="name" formControlName="name" matInput placeholder="Enter category name" /><mat-error *ngIf="name.hasError('required')">Name is required.</mat-error><mat-error *ngIf="name.hasError('minlength')">Name must be at least 3 characters.</mat-error><mat-error *ngIf="name.hasError('containUpperCase')">Must conatin uppercase</mat-error></mat-form-field>És a ts-ben annyit csináltam, hogy beleraktam a te functionödet, meg hozzáadtam a formcontrolhoz:
name: new FormControl('', [Validators.required, Validators.minLength(3), this.containUpperCase]),Így üresen, és 3 karakter alatt csak a minlength hibát írja, containUpperCase-t meg utána (átneveztem containDigit-ről
).A name az egy sima getter, vissza adja a 'this.form.control.name'-et, így átláthatódd a html.
De így nem figyeli a dirty és pristine tulajdonságokat nem? Mármint ha belekattintassz a mezőbe, akkor nem ír ki hibát, sőt elvileg a a requiredre nem is fog hibát jelezni csak a form lesz invalid
-
bandi0000
nagyúr
Nemrég kezdtem el használni a materialt, tehát nem 100%, hogy én tudom jól, de "mat-error"-ból lehet több, abba kell belerakni az error-message-eket (szerkesztettem az előzőt, raktam be egy saját kódot).
Viszont itt most a ts file kéne, ahol megírtad a custom validatort.
Egyébként pl a minlength így van megírva:static minLength(minLength: number): ValidatorFn {
return (control: AbstractControl): ValidationErrors | null => {
if (isEmptyInputValue(control.value)) {
return null; // don't validate empty values to allow optional controls
}
const length: number = control.value ? control.value.length : 0;
return length < minLength ?
{'minlength': {'requiredLength': minLength, 'actualLength': length}} :
null;
};
}isEmpty ennyit csinál:
return value == null || value.length === 0;Az igazából ennyi:
export function containDigit(control: AbstractControl): { [key: string]: boolean } | null {
if(control.errors?.required || control.errors?.minlength || control.errors?.maxlength){return null; }
if (!/[A-Z]/.test(control.value) && environment.passwordContainDigit) {return {'containUpperCase': true }}
return null;}Akkor ír ki 2 hibaüzenetet amikor belekattintottam a mezőbe, de nem írtam semmit, nyilván olyankor required-re is lő, meg erre is, ezért próbálkoztam az első if-ben, megnézni, hogyha van már a required-re hiba, akkor ne is nézze ezt
-
bandi0000
nagyúr
Ha mutatsz kódot, kicsit könnyebb lenne. Írtad, hogy Materialt használsz, ott ha több hibaüzenet is van, akkor neked kell kezelned, hogy melyik mikor jelenjen meg, alapból csak annyit néz, hogy dirty || touched, és ha van hiba, akkor megjeleníti (ha több hiba van, akkor mindet). Neked megírnod mindegyik hibára, hogy melyik mikor jelenjen meg.
Illetve, ha már dirty || touched, és ezért mutatja a required hibát, akkor egyértelmű, hogy mutatja a "nincs e betű" hibát, mert ha üres, akkor nincs e betű
.Nekem pl van egy ilyenem:
<mat-form-field>
<mat-label>Name</mat-label>
<input type="text" id="name" formControlName="name" matInput />
<mat-error *ngIf="accountName.hasError('required')">Account name is required</mat-error>
<mat-error *ngIf="accountName.hasError('minlength')">Account name must be at least 3 characters</mat-error>
</mat-form-field>Itt a required akkor jelenik meg, ha dirty || touched, a minlength-es pedig akkor, ha 1 vagy 2 karakter van beírva, de ez a gyári minlength, itt megvan írva ez a viselkedés.
Igazából [ennyi]
egyenlőre még hunglish
de majd többnyelvűsítés a cél, igazából a gyári validatoroknál le van valahogy kezelve ez szerintem, mert pl egy üres mezőre nem írja ki, hogy kötelező, és email formátumnak meg kell felelnieDe akkor majd utánanézek, hogy lehet ezt normálisan kezelni
-
bandi0000
nagyúr
Köszönöm, ez lett a megoldás
-
bandi0000
nagyúr
Bekérdezek ide, hátha valaki találkozott hasonlóval
Angular 9
Reactive formot használok, meg materialt
Használok egy pár beépített validátort, meg egy sajátot a jelszóra
A gond ott van, hogy minden hibát egyszer ír ki, tehát először csak a required-re lő, aztán ha van benne valami, akkor kiírja, hogy rövid a jelszó stb, de ha használom a saját validátoromat , ami azt nézi, hogy van e benne nagybetű, akkor kiírja a hibát akkor is, amikor üres a beviteli mező, és akkor 2 hibát ír ki a required-re, meg a saját validációmra
Ezt nem tudom, hogyan kellene megoldani, azt próbáltam már, hogy a custom validatorba megvizsgálom, hogy van e benne hiba, és a hibák között nincs az, amire éppen létrahoztam a custom validatort, de ígyis ugyan ezt csinálta
Legrosszabb esetben használok pattern-t, de azért szebb lenne emígy megoldani
+ egy kis Responsive ötlet is jól jönne
Szintén Angular material, + Angular Flex-Layout
Ötlet az az, hogy angularba nyitok egy dialogot a bejelentkezés és regisztrációhoz, viszont úgy szeretném megoldani a kettő közti váltást, hogy a dialogon belül 2 db gomb lenne, egymás mellett, amik egyenként elfoglalják a szélesség 50-50%-át, viszont a legkisebb állapotában minden vezérlő egymás alá kerülne
Nagyrészt ezek meg is vannak, csak az első fejtörést az okozza, hogy a dialognak kellene egyáltalán adni szélességet? mert ugye elvileg felveszi a tartalomnak a szélességét
A másik dolog, hogy ahogy összehúzom a böngészőt, a beviteli mezők szépen egymás alá kerülnek, viszont a gombok nem, ez azért lehet mert megadtam nekik, hogy 100% legyen a szélességük, ha viszont ezt kiveszem, akkor meg nem töltik ki a helyet
(beviteli mezők külön komponensben vannak, azokat alul szúrom be)<div fxLayout="column"><div fxLayout="row" fxLayoutAlign="end"><button mat-button (click)="closeDialog()">
<i class="material-icons">close</i></button></div><div fxLayout="row"><div fxFlex="100"><button mat-button (click)="isLoginActive= true"[class.btn--disable]="isLoginActive"class="full-width no-shape">Login</button><button mat-button (click)="isLoginActive= false"[class.btn--disable]="!isLoginActive"class="full-width no-shape">Registration</button>
</div></div></div><div *ngIf="isLoginActive"><app-login></app-login></div><div *ngIf="!isLoginActive"><app-registration></app-registration></div> -
bandi0000
nagyúr
Bekérdezek ide, hátha valaki találkozott hasonlóval
Angular 9
Reactive formot használok, meg materialt
Használok egy pár beépített validátort, meg egy sajátot a jelszóra
A gond ott van, hogy minden hibát egyszer ír ki, tehát először csak a required-re lő, aztán ha van benne valami, akkor kiírja, hogy rövid a jelszó stb, de ha használom a saját validátoromat , ami azt nézi, hogy van e benne nagybetű, akkor kiírja a hibát akkor is, amikor üres a beviteli mező, és akkor 2 hibát ír ki a required-re, meg a saját validációmra
Ezt nem tudom, hogyan kellene megoldani, azt próbáltam már, hogy a custom validatorba megvizsgálom, hogy van e benne hiba, és a hibák között nincs az, amire éppen létrahoztam a custom validatort, de ígyis ugyan ezt csinálta
Legrosszabb esetben használok pattern-t, de azért szebb lenne emígy megoldani
-
bandi0000
nagyúr
Köszönöm sztanozsnak, ezt kerestem .
Már kezdek belejönni, több segéd funkciót is csináltam a fordításhoz . Most azon akadtam fenn, hogy hogyan lehet a funkció paramétereknek belőlről új értéket adni úgy, hogy azt funkción kívülről is használni lehesen utána ?var e4 = 0 ;function alma(a1,b2,c3){b2 = 456 ;return 123 ;};alma(4,e4,8) ;alert(e4);
Vagyis úgy hogy a e4 egyenlő legyen 456 -tal és ne 0 -val ? Hátha van rá valami kulcsszó, metódus ?
this.e4=456
-
bandi0000
nagyúr
Javítás
, időközben változott a helyzet, mert elgépeltem a másik laptopomon : Mégsem false hanem true, de miért vált át az xa1.length 4 -ből 5-re, amikor mindkettő undefined ? A typeof is pedig mindkettőnél mégiscsak undefined lesz .valszeg az okozhat gondot, hogy a "hosszadik" elem nem létezik, ha 4 elemű a tömb akkor nincs 4. csak 3. elem az az utolsó
-
bandi0000
nagyúr
Ha a function futását meg akarom szakítani, azt melyik kulcsszóval kell tenni ? exit ? A ciklusnál a break, de a functionnál mi ?
function név(){utasításutasításexit ???utasításutasítás}; -
bandi0000
nagyúr
Kösz, ezt jobban értem .
nyugodtan rá lehet keresni kulcsszavakkal arra amit akarsz csinálni, mert ami nincs megolva már pl stacko-n az nem is létezik

-
bandi0000
nagyúr
Ha odáig fajul a dolog, és csak ez hiányzik az egészből, és megam nem tudok zöldágra vergődni vele, akkor rászánok egy kevés pénzt is, de csak ekkor . Persze, hogy eljutok-e sokára odáig, az még a levegőben lóg . Milliomos nem vagyok, úgy hogy sokra neszámítsatok . Majd a https://www.w3schools.com linken keresgélek .

[pl] de sokat segït a google is kulcsszavas keresésnél
-
bandi0000
nagyúr
Angulárban csinált már valaki olyan dinamikus formot, ahol megkapjuk adatnak, hogy milyen fajta input mező legyen pl text, checbox stb és az alapján generálok hozzá egy formot? Mi lehet erre a best practice?
-
bandi0000
nagyúr
Mi pl. ezt használjuk, de angularhoz van külön bootstrap is. Szerintem ehhez hasonló komponenseket nyugodtan használj, a "mindent kézzel készítünk" mindset egy határidős, fizetős projektnél szó szerint luxus.
Otthon persze lehet sajátot faragni, szórakozni vele, mélyebben megérteni a dolgokat, és szerintem ilyet kell is. De Gave kollégával ellentétben szerintem nem azért fizetnek minket, mert az 1923. alkalommal is előröl írunk egy komplett webapp css-t.

K1nG HuNp
Csinos a design, saját?
köszi, igen már régebben említetted/tétek a materialt, azt nyüstöltem is picit, a másik angular bootstrapet meg most használom
Jól gondolom, hogy amit én használtam sima bootstrapes col-md-3 kifejezést pl ,az nincs benne az angulárosba? 1 szó mint 100, amit linkeltél abba csak komponensek vannak, de egy reszponzív oldalnál írjam én meg css-ben media querybe a viselkedést?
-
bandi0000
nagyúr
persze én sem nyúlnék már bottal sem a bootstraphez, de szerintem amíg barátkozik az ember a reszponziv webdesignal addig teljesen jó, főleg a fasza dokumentációja és a millio stackoverflowos válasz miatt

Más:
Referenciamunkának szerintetek ilyesmiket szoktak várni a cégek? Ez egy alap kis nodejs könyvesbolt amit most az egyik vizsgám után dobtam össze.Úgy értitek, hogy mindent kézzel írtok meg css ben ?
Nem melós az nagyon, ha valami szép effekteket is akartok csinálni?
-
bandi0000
nagyúr
Ilyet minden gond nelkul tudsz:
<ul>
<li *ngFor="let item of items">
<bandi-component [bandiInput]="item"></bandi-component>
</li>
</ul>Tulajdonkeppen hatar a csillagos eg. Belerakhatsz egy sajat komponenst, atadod neki az aktualis adatot, az csinal vele az a komponens onnantol amit csak szeretnel. Mivel a komponens a sajat stilusat is definialja, ezert igen, ugyanolyan kinezetu is lesz.
köszi, és tényleg tök kézenfekvő, de nem gondoltam erre

-
bandi0000
nagyúr
lehet félreérthető voltam
Androidba van un. adapter minta, aminél megcsinálok egy templatet, hogy hogy nézzen ki a lista 1 eleme, aztán azt belerakva a kódba a lista minden eleme ugyan olyan kinézetű lesz
-
bandi0000
nagyúr
Ês akkor ha jól értem, ha használok pl *ngFor-t, akkor egy kulcsszóval minden egyes sort meg tudok formázni ahogy akarom?
-
bandi0000
nagyúr
Év elején már nekiugrottam ennek, meg kérdezősködtem is (változott az avatarom)
Viszont azt a projektet eldobtam *, csak közben suliban szakmai gyakra kell menni, és ott front enden leszek, ahol angulart használnak, szóval most megint próbálom magam kicsit okosítani, hogy ne piszkáljam az ottani kollégákat minden aprósággal

*Rájöttem, hogy mocsok sok meló egy szép weboldal megcsinálni, és kevésbé kell hozzá 'fejlesztői' gondolkodás, olyan szintű tudás kéne itt a html,css bootstrap stb be, amit értelmes idő alatt nem tudnék magamra szedni szeritem, mert nem front endes a gondolkodásom, ha ezt így lehet mondani, back enden sokkal jobban érzem magam
Persze pl az android layout designer-e tetszik, tök gyorsan lehet összedobni látványos dolgokat
-
bandi0000
nagyúr
igen közben tegnap pont egy olyan videón szaladtam végig
A bootstrapnél ugye elvileg oszlop szélességet adok meg, viszont az is felbontás függvényében változik nem pedid kijelző méretben
pont ezen agyaltam, hogy szép ez a felbontás függő dolog, de most már a telefonnak nagyobb a felbontása mint a monitornak szal azon az életben nem lesz mobilnézet ha csak azt veszem figyelembe
Bocs a dupláért de kicsúsztam
Mit is keresek játékban tudnátok segíteni? Fogalmam sincs, hogy angularnál létezik e bár gondolom igen, de hogy mi a neve annak, ha van egy osztálytömböm amit én meg szeretnék jeleníteni formázottan, és ne kelljen megírni minden egyes sort html ben, hanem megcsinálnék 1 mintát ami alapján legenerálja a többi elemet
-
bandi0000
nagyúr
Pontosan. Csak 2019ben már vannak jobb módok a kézi media query irásnal. Mostanában a best-practice már a mobilra megírni először az oldalt, és onnan "min-width" esetleg "min-height" queryk segítségével "felnagyítani" a weblapot ha az adott kijelsző x méretnél nagyobb.
Ha valami gyors kell akkor pl ott a bootstrap keretrendszer, amelyben ezeket megírták neked előre, te pedig csak html classokat adsz elemeknek, pl olyanokat, hogy ez a div kis méretben a képernyő felét használja, nagyban az 1/3-át
igen közben tegnap pont egy olyan videón szaladtam végig
A bootstrapnél ugye elvileg oszlop szélességet adok meg, viszont az is felbontás függvényében változik nem pedid kijelző méretben
pont ezen agyaltam, hogy szép ez a felbontás függő dolog, de most már a telefonnak nagyobb a felbontása mint a monitornak szal azon az életben nem lesz mobilnézet ha csak azt veszem figyelembe
-
bandi0000
nagyúr
Lehet hülyesêget írok, de a reszponzív weboldal alapja az ún. media query? Erre talátam példát sima html weblap tutoriálnál, plusz ahogy rákerestem angularra is kidobott egy léldát ugyan ilyen alapon
-
bandi0000
nagyúr
Nézegetem ezt a Dynamic Forms-ot de nem igazán esik le, hogy ez tulajdonkép micsoda is? live example alapján se jöttem rá, hogy mire használják, valaki tudna segíteni 1-2 mondatban, hogy megértsem?
-
bandi0000
nagyúr
-
bandi0000
nagyúr
Sziasztok!
Van egy ilyen scriptem, ami egy tábla adatait szépen leszedi, tök jól működik jelenleg, de nekem csak a sor 2. cellájának és a 4. (egyben utolsó) cellájának adataira lenne szükségem. Tudna segíteni valaki ezt megoldani?
var oTable = document.getElementById('table');
var rowLength = oTable.rows.length;
for (i = 4; i < rowLength -1; i++) {
var oCells = oTable.rows.item(i).cells;
var cellLength = oCells.length;
for(var j = 1; j < cellLength; j++) {
var cellVal = oCells.item(j).innerHTML;
console(cellVal);
}
}Első for direkt megy 4-ről?
Mert ugye mivel 0-ról indexelődik így írhatsz egy feltételt, hogy
rowLength[i]%2!=0 // tehát csak a 1.és 3. indexű sort nézi ami a te esetedben a 2. és 4. -
bandi0000
nagyúr
Köszi a választ!
Ja és a pastebin-es kódban a jquery-t meg hasonlókat korábban húzd be, mint a saját kódod.
Persze, próbáltam úgyis (sőt most már úgy van), de úgy sem ment.
Nem kell semmit szerializálni, nem is tudom ezt honnan vetted.
A te megoldásodban -amennyire ezt olvasni tudom- ha a user megváltoztja a form-ot, majd visszaváltoztja az eredeti állapotára, a disabled attribútum már nem fog visszakerülni ugye?
Pont erre lenne a szerializálás, hogy elments a form eredeti, oldalbetöltés utáni állapotát és azzal tudd összehasonlítani az aktuális állapotot.
Ma este még kipróbálom amit küldtél...
nem ezt keresed? oninput="myFunction()" ha változik a tartalma a mezőnek a user által, akkor csinál valamit, pl bekapcsolja a gombot
-
bandi0000
nagyúr
legegyszerűbb így elképzelni: gyári ha kitörlöd a desserts értékadását, akkor kb azt éred el, mintha nem jött volna meg az adat szerverről, és meghívja az üres tömbre a slice metódust, ami hibát dob rögtön
Nyilván én ezt megoldottam így, hogy a subscrible alá behúztam a slice-os sort, és akkor csak azután futna le, miután megjön az adat, de ez azért nem hiszem, hogy a legjobb megoldás
-
bandi0000
nagyúr
Mar hogy ne menne sokra, Angular 7-ben is vannak komponensek es controllerek max a szintaxis mas. Most megnezve az angular-material oldalat, szinte 1-az-1-ben ugyanigy kell irni: https://material.angular.io/components/list/examples
Lehet elbeszélünk egymás mellett, ngFort használtam én is, itt még nem probléma , mert akkor dobálja ki az adatokat amikor megérkezik, csak akkor van baj pl, ha valamilyen szűrőt használnék, és ebben az esetben nem közvetlen a lekért adatokat jelenítem meg, hanem egy másik változóba belerakom az eredeti adatot, és azt aggregálom, ebben az esetben, ha a subscribe-n kívülre rakom az új változó értékadását, akkor hibát fog dobni, mivel bele akarja rakni az adatot, de az még nincs itt
A fentebb linkelt resolve jónak tűnik, mert pont azt csinálja, csak ahogy látom, azt minden componensre meg kell csinálni egyénileg
-
bandi0000
nagyúr
+ ha jól látom, akkor ezt minden egyes oldalra külön meg kell írni?
-
bandi0000
nagyúr
köszi, akkor ha jól értem amikor a felhasználó navigálna valamire, akkor mielött betöltene az oldaly a resolver fut le, megkapja az útvonal címét, lefuttatja az utvonalon lévő observert vagy valamit, és ha megjött az adat akkor tölti csak be az oldalt ?
-
bandi0000
nagyúr
"Először is egy technikai kérdésem lenne, nem használtam soha még Ajax kérést, de ha jól tévedek, akkor a lényeg, hogy a háttérben elkéri az adatot, úgy, hogy a felhasználó semmit nem vesz észre, ilyen nincs az Angularban?"
Szerintem 100% hogy hasznaltal mar max nem tudsz rola hogy azt hasznaltad. Angular-ban ennek az egyik implementacioja a https://angular.io/guide/http angularjs-ben a $http service. Ujabb bongeszok tamogatjak a `fetch` API-t.
A websocket az mas. Websockettel tudod tobbek kozott elerni, hogy a backend is aszinkron tudjon kommunikalni a frontenddel. Igazabol mas a ketto. Az AJAX szinte minden applikacionak a resze es elengedhetetelen manapsag, websocketre pedig csak ritkan van szukseg.
Áhh köszi, és annak mi lenne a módja, hogy csak akkor töltsön be a template, ha megjött az adat? Sima ngIf-el oldjam meg, vagy más a módi erre?
Amit még hirtelen nem találok, hogy miként kellene megoldanom ha a hirdetéseket nem táblázatban, hanem listában vagy akármiben tárolnám, és szeretném használni a paginator-t?
Inkább úgy kérdezem, hogy nekem kellene lekezelni, hogy ha lapoz a felhasználó, akkor az ngFor a következő 10-et rakja ki?Mert táblázatokra tök jó példákat találtam, ahol meg van oldva a lapozás egyszerűen, de listára nem találok hasonlót
-
bandi0000
nagyúr
-
bandi0000
nagyúr
bocs ,de akkor kérdezek egy utolsót, mert azt se tudom hogy keressek rá
mi a módja annak, hogy formázó tageket tudjak beszúrni egy textareaba vagy akármibe mint pl itt?
-
bandi0000
nagyúr
Köszi , lehet ezt még átgondolom, mert szerintem felesleges, igazából csak az lett volna a cél, hogy jelezzem a felhasználónak hogy ha van olvasatlan üzenete pl, de erre igazáéból elég lenne az ngIf is, ami minden oldal frissítésnél megnézi, hogy van e olvasatlan üzenete, és ha van, akkor oda hegeszt 1 számot az üzenetek mellé pl
-
bandi0000
nagyúr
Kérnék egy kis segítséget
Először is egy technikai kérdésem lenne, nem használtam soha még Ajax kérést, de ha jól tévedek, akkor a lényeg, hogy a háttérben elkéri az adatot, úgy, hogy a felhasználó semmit nem vesz észre, ilyen nincs az Angularban? Pl egy olyan funkciót, mint facebookon az értesítéseket hogy csinálják, hogy valós időben oldal újratöltés nélkül jelez?
A másik inkább ötletelés lenne
A freelancerhez hasonló weboldalt akarok csinálni, a gond ott kezdődik, hogy pl megrendelő feltölt egy projektet, amire a programozók vagy bárki reagálhat, tehát tesz rá egy órabér ajánlatot, ezt valahol ki kellene listázni a megrendelő részén, pl a hirdetései alatt kilistázza, hogy ki tett rá ajánlatot, persze ezt csak ő látná, ezután az X ajánlat közül kellene választania egyet, akinek odaadja a projektet, na már most ez a másik oldalt is lenne, tehát a programozó felrak egy hirdetést, hogy ő vállal akármilyen fejlesztést, és erre egy megrendelő ráugorhat, hogy neki kellene csinálni valamit, viszont ebben az esetben is lehet több " ajánlat" a hirdetése alatt, de nem feltétlen választ csak egyet, mert megcsinálhatja az összeset is
Egyrészt a későbbi értékeléseket kellene kötni valamihez pl hirdetéshez ,hogy ne lehessen össze vissza értékelni
Szóval erre keresek valami praktikus megoldást, gondolkoztam hasonló megoldáson is, mint a PH-s rendszer, de ott pár üzenetváltás után létrejön az üzlet, míg az én esetemben inkább személyes megbeszélések után kezdődhetne a projekt és fejeződhetne be
Remélem érthetően hadartam el mit is szeretnék, és megköszönöm ha tudtok 1-2 támpontot adni
-
bandi0000
nagyúr
Kérnék egy kis segítséget, egyszerűen teljesen bele gabalyodtam már a az Observer-be, persze próbálok utána olvasni, de valahogy nem teljesen értem a működésüket stb, Observer az nem vár lényegében, csak ha megkapja az adatot, akkor megcsinálja amit kell, de nem tudom ezt valahogy rá "húzni" az alatta lévő 2 sorra is, hogy addig ne hajtódjon végre, amíg az observer nem kapja meg az adatot?
lényeg, hogy ha HTTP401-et kapok vissza, akkor kér a kliens egy új tokent, és azzal újra elküldi a kérést, viszont ki loggoltam és amit nem igazán értek, hogy kiírja hogy "1", aztán kiírja hogy "null" mert nincs a localstorage-be a token, aztán kiírja a tokent ami a subscribe-n belül van
Azt akarom megoldani, hogy az utolsó log lényegében addig ne legyen végre hajtva, míg nem kerül be a localstorageba a token
if(localStorage.getItem("token"))
{
localStorage.clear();
console.log("1");
this.auth.refreshToken().subscribe(
res=>{
localStorage.setItem('token',res['token'])
console.log(localStorage.getItem('token'));
request = this.addRefreshToken(request);
},
err=>console.log(err)
)
console.log(localStorage.getItem('token'));
return next.handle(request);
} -
bandi0000
nagyúr
ezt pontosan hogy érted?
Amit hirtelen találtam annak az alapja az, hogy ha 401 et kap vissza, és be volt jelentkezve, akkor csak kér egy új tokentVagy meg lehet azt oldani, hogy a háttérbe figyelné valami a lejárati dátumot, és ha lejár akkor kér egy újat?
-
bandi0000
nagyúr
Mi lenne a jó megoldás, ha lejár a token?
Tönn megoldás van a fejemben, de nem tudom melyik a jobb, egyrészt a jwt tokenbe be van csomagolva a lejárati idő, amit gondolom lehetne figyelni minden kérés elött, ha lejárt akkor megújítja
vagy azt figyelni, hogy mikor ad vissza a szerver http401 et, és ha vissza ad, akkor vagy megújítás, vagy automatikusan a loginre ugrik
Szerintetek? Vagy más a bevett megoldás erre?
-
bandi0000
nagyúr
-
bandi0000
nagyúr
Ha lenne admin felhasználóm is, akkor arra mi a bevett gyakorlat? Pl ha ugyan azt az oldalt is láthatnák 1-2 plusz funcióval, copy paste a template, vagy ki kellene valahogy egészíteni?
-
bandi0000
nagyúr
Tudnátok ajánlani angulárhoz tutorialt, JWT token kezeléséhez? Amiket én találtam azok nem voltak valami részletesek
Gondolok itt arra, hogy ha megkapja a tokent, akkor valami session-t vagy mit hoz létre, míg le nem jár a token, és el legyenek választva az útvonalak autentikációhoz kötve
-
bandi0000
nagyúr
Elkiabáltam

a sort nem működik
Mármint annyira igen, hogy először egy tök üres táblázatot mutat, aztán ha rányomok valamire, akkor kidobja a táblázatot,viszont nem teljesen rendezi be, gondolom azért, mert az elején egy 0-ás tömbre van meghívva a slice() és azt tölti bele a rendezett tömbbe
Lehet ezt valahogy késleltetni? Vagy csak egy if-el vizsgáljam meg, hogy van e már adat?
bocs kicsit sok a hozzászólás...
utánajártam, és találtam egy megoldást erre, ngOninit-ba a subscribe után adok értéket a tömbnek, így csak akkor hajtódik végre, ha megjön a szervertől az adat, ez így jó is
ngOnInit() {
this.studentService.getStudents()
.subscribe((response)=>{
this.students = response;
this.sortedData = this.students.slice();
});
}De nem jövök rá, hogy mitől nem akarja rendezni az adatokat, + hogy az email mezőt jól rendezi, a többit nem, ha valakinek van ötlete hogy mit szúrtam el, akkor hálás lennék
-
bandi0000
nagyúr
Na sikerült működésre bírnom a sport-ot is és az autocomplete-ot is
Mindkettőnél az volt a baj, hogy hamarabb akart használni valamilyen metódust az objektum tömbön, mint ahogyan az megkapta volna az adatokat, legalább is szerintem
Annyit kellett csak csinálnom, hogy ahol létrehoztam az objektum tömböket, annak adtam kezdőértéknek egy üres tömböt, és így jó lett
Ez mennyire jó megoldás? Megoldás szempontjából hibátlanul működik, de ezt eleve így kellett volna, vagy csak találtam egy kiskaput ?

Elkiabáltam

a sort nem működik
Mármint annyira igen, hogy először egy tök üres táblázatot mutat, aztán ha rányomok valamire, akkor kidobja a táblázatot,viszont nem teljesen rendezi be, gondolom azért, mert az elején egy 0-ás tömbre van meghívva a slice() és azt tölti bele a rendezett tömbbe
Lehet ezt valahogy késleltetni? Vagy csak egy if-el vizsgáljam meg, hogy van e már adat?
-
bandi0000
nagyúr
Na sikerült működésre bírnom a sport-ot is és az autocomplete-ot is
Mindkettőnél az volt a baj, hogy hamarabb akart használni valamilyen metódust az objektum tömbön, mint ahogyan az megkapta volna az adatokat, legalább is szerintem
Annyit kellett csak csinálnom, hogy ahol létrehoztam az objektum tömböket, annak adtam kezdőértéknek egy üres tömböt, és így jó lett
Ez mennyire jó megoldás? Megoldás szempontjából hibátlanul működik, de ezt eleve így kellett volna, vagy csak találtam egy kiskaput ?

-
bandi0000
nagyúr
-
bandi0000
nagyúr
Persze , [aoutocomplete] kell nekem, mert itt lehet ugye keresni is, nem csak kiválasztani, de itt egy string tömböt használ
-
bandi0000
nagyúr
Egyre inkább jövök rá, hogy a tutorial csak elindulásnak jó, mert egy csomó dolog szivat benne
Sok dolgot mockolnak ezekben a példákban, hogy könnyebben emészthető legyen. Aztán ja, az élet máshogy hozza, akkor kicsit ülni kell felette.

Nagyjából ennek úgy kell kinéznie amúgy, hogy minél előbb meghívod a servicet ami az adatokat szolgálja, aztán az vissza ad egy observablet. Azt szépen feldolgozod, és async megjeleníted a táblázatodban. (async pipe a templateben, keress rá).
Routerben is elintézheted az adatlekérést. Ha jól tudom akkor ez még a component betöltése előtt megfut, tehát fixen ott lesz adatod mire megjelenítésre kerül az adott component. A constructorban ettől függetlenül nem szokás business logicot helyezni, tessék szépen kiszervezni az adatok feldolgozását egy functionbe.

Még1 és befejeztem

arra mi a bevált módszer,ha a fentebb javasult material-selectet használnám, de az is string tömböt eszik, nekem meg ugye objektum tömbböm van
+ ugye ha kiválasztja a várost pl, akkor annak hatására rögtön beíródik az irányítószám, ezért lenne jó az objektum, mert akkor ezt könnyen meg lehet oldani, ha csak 1 tömbben lenne a város név, akkor viszont keresést kéne csinálnom az irányítószám alapján
-
bandi0000
nagyúr
Mert beégette az adatokat, ha innen akarsz hívni egy service-t akkor neked így indítani a konstruktort nem sok értelme van (egy üres tömböt deklarálsz majd belekopizol egy üres tömböt). Viszont ha azon a vonalon vagy hogy resolve-olod a state-ben a service hívást akkor akár még járható út is lehet, hiszen akkor van mit lemásolni.
Ezt az angular tutorialból szedtem, ezek szerint akkor nem így csinálják a valós alkalmazásnál?
Egyre inkább jövök rá, hogy a tutorial csak elindulásnak jó, mert egy csomó dolog szivat benne
Zedz: mindkettőt csináltam már,kisebb nagyobb sikerrel
Már nekem is ég a pofámról a bőr, hogy ilyen sokat kérdezek, de az első mindig a gugli, és aztán jövök ide, de ahogy észreveszem, inkább konstrukciós hibákat csinálok
-
bandi0000
nagyúr
Mert a példában is úgy csinálták
constructor() {
this.sortedData = this.desserts.slice();
}desserts egy interface-t valósít meg
igen, szervertől kapok adatot, és ngOnInit-ben töltöm fel a tömbjét
viszont a példában van egy ideiglenes változó amiben rendezi az adatokat, ezért kell átadni neki azt a tömböt
Zedz: Rendben, azt hittem erőből menni fog ez

és közben +1 kérdés
Amikor ugye egy select list-ben keresek, pl város, akkor azt hogy szokták/érdemes csinálni? lekérdezem szerverről az összes várost, és abba keresek, vagy pedig úgy, hogy elküldöm a szervernek a "search term"-et, és akkor vissza kapom az arra illeszkedő városokat
-
bandi0000
nagyúr
Mert a példában is úgy csinálták
constructor() {
this.sortedData = this.desserts.slice();
}desserts egy interface-t valósít meg
igen, szervertől kapok adatot, és ngOnInit-ben töltöm fel a tömbjét
viszont a példában van egy ideiglenes változó amiben rendezi az adatokat, ezért kell átadni neki azt a tömböt
Zedz: Rendben, azt hittem erőből menni fog ez

-
bandi0000
nagyúr
hülyeséget mondtam, mert elvileg mindenen működik ez a slice, a példában is egy interfacet valósítottak meg
Viszont ami szerintem a hiba, hogy ha jól tévedek, a construktor előbb fut le mint az ngOninit, viszont a construktorba hívom a slice()-t, az ngOninitbe meg töltöm fel a tömböt az objektumokkal
Erre mi lehetne a megoldás? Nemes egyszerűséggel átdobtam a contruktorba a tömb feltöltést, de persze nem jutottam semmire

-
bandi0000
nagyúr
-
bandi0000
nagyúr
-
bandi0000
nagyúr
kérdés
Használni próbálom ezt a sorted table-t a materialba, de hibát dob a Slice-ra
Létezik, hogy ez csak tömbökön működik? Mert utánanézve mintha ilyesmi lenne
és ha igen, akkor ha objektum tömbböm van, akkor mit csináljak? Alakítsam sima tömbbé?
-
bandi0000
nagyúr
jó hát nem omlik össze a világ, ha nem ez lesz a legegyedibb, elég sok szopástól kímél ez meg szerintem, hogy megérje, belenéztem és nagyon sok jó cucc van benne, amit egyszerűbb használni mint megírni
-
bandi0000
nagyúr
nem néztem bele igazán mélyen, hogy mit lehet kihozni belőle, igazából én odáig meg vissza vagyok a material kinézetért, szal tetszik, csak nem akarom, hogy túlságosan hasonlítson más weboldalakhoz
-
bandi0000
nagyúr
fél dél előtöm rá ment, míg rájöttem, hogy miért nem működik, mert fele cuccot bele se raktam

De most ezzel akkor fel lehetne építeni CSS nélkül egy konkrét weboldalat?
Gondolom ha beépítem, akkor tudok szelektálni, hogy melyik stílusokat akarom használni, és melyiket nem, ha egyedi weboldalat akarok -
bandi0000
nagyúr
-
bandi0000
nagyúr
-
bandi0000
nagyúr
Egy ideje már keresem, de nem tudom mire kellene rákeresnem, hogy meglegyen
Lényeg, hogy hogyan tudnék olyan Formot csinálni, ahol egy kereső mező van, abba amit beírok, megkeresi a várost, és behelyettesíti az irányítószám mezőbe a városhoz tartozó számot
Igazából a neheze meg van, tehát kilistázom és elvileg kiválasztom a várost, amihez elvileg egy click eseményt kötöttem, de nem helyettesíti be az irányítószám mezőbe...
+szerintem elég kókler is lett, szóval az lenne a legjobb ha tudnátok erre valami példát adni, mert én nem igen találok hasonlót
-
bandi0000
nagyúr
Mit érdemes még megnéznem, hogy majd gond nélkül meg tudjam csinálni a frontendet?
eddig amik voltak:
Megvannak hogyan épülnek fel, komponensek,service stb
útvonalakat is tudom haszálni
reactive form+validáción rajta vagyok, de már ezt is csináltamGondolom,hogy sok dolog van ebbe az Angulárba, szóval lehet értelmetlen volt a ez a kérdésem

-
bandi0000
nagyúr
-
bandi0000
nagyúr
Persze értelek, elsőszőr én is keresek, csak még ismeretlen kicsit ez, gondolom mivel az angular dobta a hibát akkor ott kutakodjak először?
-
bandi0000
nagyúr
köszönöm
Meg is lett a Form, átadtam, próbálom menteni, de valami hibám van ,amire nem jövök rá, vagyis sejtem...
JSON.stringify()-t használom, hogy az objektumból JSON formátumot kreáljak, ezt ki is írattam konzolra, és ezt adta:
{"student":{"id":10,"lastName":"efefe","firstName":"efefe","age":5,"postCode":null,"email":"eefefe"}}student a legelső pozícióban nem tudom miért került oda? Lehet csak a kiíratásnál keletkezett, de Http Error Respenso-t is dob, yntaxError: Unexpected token d in JSON at position 0
Bár ahogy olvasom, lehet a válasszal lenne baja?
-
bandi0000
nagyúr
A tokeletesseg igenye nelkul itt van egy nagyon egyszeru pelda.
Nem csinaltam mast, mint egy sima formot, ami onSubmit() -kor meghiv egy servicet, ami pedig majd elintezi a dolgokat a szerverrel. Mint lathatod, a service tartalmaz egy User interfacet ami csak a tipusossag miatt kell, ha csapatban dolgozik az ember akkor szerintem feler egy ongyilkossaggal anelkul dolgozni.
Szoval a komponensedben nem csinalsz mast, mint a kapott adatot levalidalod, ha pedig oke, akkor tovabb adod a servicenek kb. ugy ahogy mutattam.
köszönöm, igazából megválaszoltad ezzel már a kérdésem, bár így lett még1

...formValue pontosan mi? vagyis gondolom, hogy belerakja az objektumba, de pontosan mit jelent?
onSubmit(formValue: any) {
const user: User = {
...formValue,
}
this.userService.saveUser(user);
} -
bandi0000
nagyúr
Van egy kliens (böngésző), és van egy szerver (PHP). Ezek között az adatok az interneten keresztül (még ha ez fejlesztői gép esetében éppen gépen belül is történik), áramolnak az adatok.
OOP ide vagy oda, az adatokat túl sokféleképpen nem tudod a kliens és a szerver között küldeni, xml / json az elterjedt formátumok (az utóbbi 10 évben persze már inkább csak a json, de ahogy az angular, úgy az xml is sokáig velünk él még
sőt forms encoded stringekkel is lehet még találkozni).
Azaz jó lesz neked a JSON-ben adatküldés. Kliens oldalon ez könnyen objektummá deszerializálható.Lehet félreérthető voltam, vagy épp én értelek félre
kliens és szerver között mindképp json be megy az adatÉn két komponens között kérdeztem ezt, van egy formos komponens, és az adja át valamilyen formába az adatot ugye egy másik komponensek, aki majd átalakítja json be és küldi tovább a szervernek, és e két komponens között akkor mind1 hogy milyen formátumba csak menjen az adat

-
bandi0000
nagyúr
Amíg az alkalmazáson belül marad az adat, addig persze, átadhatod az adott objektumként (kérdés, hogy a Form kezelésén kívül szükség van-e máshol a teljes wrappelt objektumra az adaton kívül - általában nem), a lényeg, hogy amikor a HTTP hívás megtörténik, ott már a "csupasz" JSON objektumot küldd el a szerver felé.
rendben, köszönöm mindkettőtöknek

-
bandi0000
nagyúr
JSON objektumot kell csinálnod a FormGroupból kinyert adatokból. Azt oda adod a httpclientnek, ami elküldi a szerverre. Az fogadja, feldolgozza, menti.
köszönöm, nem akarom húzni az agyad a hülye kérdéseimmel, de tényleg ilyen apróságokat nem értek, és szeretném jól csinálni ,ha már csinálom
Ha az általad javasolt form-al csinálom meg ezt, akkor nem objektumként kellene tovább adni service komponensnek(ebbe kezelm a httpclientet), mármint nyilván egyszerűbb JSON-ként vagy akár tömbként tovább adni, de mindenhol az OOP megy nem? Mert a PHP-ben is minden adatot objektumként adtam át
-
bandi0000
nagyúr
-
bandi0000
nagyúr
köszönöm, utánanézek
Most viszont elakadtam kicsit
Csináltam egy Form-ot, hogy új felhasználót tudjak elmenteni, de nem tudom hogy célszerű az adatokat átadni a komponensnek, találtam az angular oldalán egy példát, ha minden igaz itt a 2 oldalú adat kötést használja?
Nekem 2 problémám van, egyrészt létre kellene hoznom gondolom egy Student objektumot, aminek a tag változóira használom ezt az adatkötést, és a végén lesz egy feltöltött student objektumom amit aztán át tudok dobni a service komponensnek, hogy elmentse, ez jó megoldás? Csak elég buta dolog, de nem tudom hogyan kellene létrehozni ezt az objektumot, mert mindenre hibát dob kb, bárhogy próbálom
Vagy esetleg van itt is olyan cucc mint HTML-be, hogy 1 tömbbe adja vissza az összes adatot? vagy esetleg teljesen máshogy kellene gondolkodnom?
-
bandi0000
nagyúr
Lett egy kis problémám, amikor hozzá akarok férni a PHP backend-hez hibát ír, mégpedig, hogy CORS policy miatt le van tiltva, találtam rá megoldást, valami plugn chrome-hoz, de gondolom ha dedikált szerveren lenne a PHP akkor már nem lenne ilyen baja
Vagy a plung-on kívül van más megoldás?
-
bandi0000
nagyúr
Angular már lejárt (szvsz nem véltelneül, mert 1.X verzió mérhetetlenül szar is volt, nem is értem, hogy hypeolhatták egyesek, 2.X-től kezdve nem ismerem, de hiszem, hogy nem véletlenül ment ki a divatból).
Ha már Single Page app és naprakész dolog, akkor a react-ot vagy még inkább a vuejs-t javaslom. Vuejs-nek elképesztőn könnyű a betanulása, kezdőknek szerintem a létező legjobb választás.Hát nem tudom, majd ránézek kicsit jobban, találtam valami diagranot, aszerint nem igen használják még a vue-t, inkább a react ami elterjedt jobban
Mindenesetre utánanêzek, nekem igazából kezdőként bejön az angular, 1-2 fura szintaktikán kívül, de az szerintem az én technikai tudásom miatt van
Esetleg tudsz valami angular tutirialhoz hasonlót vue-hoz? Amit találtam az csak az egyes dolgokat mutatja be, azt se olyan jól mint ah angularos
-
bandi0000
nagyúr
Na megint csak lett egy pár, remélhetőleg egy ideig utolsó kérdéseim is

Végig értem az angular tutorialon,itt a forrás ha ez segít átlátni jobban
InMemoryDataService ezt használta az adatok szimulálására, kicsit elvesztem, hogy honnan is kapom az adatokat, ezzel lettek lekérve, az url: api/heroes, de ez honnan jön, vagy ez az InMemoryDataService válaszol ezekre a kérésekre?
És ez a tap fv vagy micsoda, ez mit akar csinálni? Sikeres kérésre csinál valamit, a cathError meg a sikertelenre?getHeroes (): Observable<Hero[]> {
return this.http.get<Hero[]>(this.heroesUrl)
.pipe(
tap(_ => this.log('fetched heroes')),
catchError(this.handleError('getHeroes', []))
);
}Na meg van ez, látom, nagyjából, hogy mit akar csinálni, de ez jelenleg borzasztóan néz ki számomra, mondjuk inkább úgy, hogy magamtól nem hiszem, hogy ezt meg tudnám írni,hogyan kellene ezt értelmezni szintaktikailag?
private handleError<T> (operation = 'operation', result?: T) {
return (error: any): Observable<T> => {
// TODO: send the error to remote logging infrastructure
console.error(error); // log to console instead
// TODO: better job of transforming error for user consumption
this.log(`${operation} failed: ${error.message}`);
// Let the app keep running by returning an empty result.
return of(result as T);
};+1
ugye itt beépített adatokkal dolgoztam, de ha össze akarom lőni PHP backend-el, akkor a hero.service.ts-ben a getHeroes metódusba az URL az majd a PHP hozzá hasonló getHeroes URL-re fog mutatni, ahol majd egy JSON objektumba kapja meg az adatokat? -
bandi0000
nagyúr
Webshopra például mehet, ha a kliens valami nagyon interaktív dolgot szeretne. Alapvetően én úgy gondolom, hogy ez a single page app dolog kliens heavy cuccoknál, vagy pedig for fun hobbi projekteknél éri meg.
Ha mezei de mégis CRUD dolgot akarunk, mint mondjuk a Prohardver lapcsalád, fórummal együtt, akkor arra tökéletes egy Express, egy Laravel vagy Django. Rövid pályafutásom során úgy vettem észre, hogy sokszor csak azért van használva XY dolog, mert csak azt ismeri a fejlesztő (csapat), és akkor automatikusan abba készül valami, holott lehet, hogy tipikusan ágyúval verébre szituáció lesz belőle. (khm Java khm)
De mint írtam szakdogának egy Ng + php api szerintem jófej dolog, bárcsak én is tudtam volna ilyet amikor én írtam a szakdogám.

Köszönöm
sajnos nem az én ötletem volt, kapcsolatba állok egy fejlesztő csapattal, akiknél majd csinálhatom a szakdogát, és ők mondták, most mêg csak erősen tanuló fázisba vagyok 
Mindenesetre még majd jelentkezek a hülye kérdéseimmel biztos

-
bandi0000
nagyúr
Köszi, ezt úgy érted, hogy ha megbízásból kellene csinálni pl egy webshopot, akkor arra nem ajánlott az angular?
Gondolom vannak komolyabb platformok is erre, vagy mi is a nevük ezeknek -
bandi0000
nagyúr
Cattus kolléga válaszát szeretném annyival kiegészíteni, hogy ha az Observable részt jobban megszeretnéd érteni, akkor:
1) Nézz utána az Observer patternnek. Ez nem Angular specifikus, hanem egy programozási tervezési minta, amit több területen is tudsz használni.
2) Nézd meg ezeket: RxJS, RxJS emberibb nyelven.Szerintem erősen ajánlott ezekkel minél előbb megismerkedni, mert nagyon hasznosak tudnak lenni.

Ha csak for fun készítesz valamit akkor mehet Angularban, de ha mondjuk production szerű dolgot csinálsz, akkor 2 táblára nem biztos, hogy ez a legjobb megközelítés.
Köszönöm
Igazából szakdogát akarom megcsinálni ebben, de miért nem jó ez?
PHP rest api lenne backend nek, és ez meg frontendre
-
bandi0000
nagyúr
ngOnInit és konstruktor kapcsolata: [link]
Typescriptben minden tagváltozót / tagfüggvényt this-szel kell hivatkozni osztályon belül, ez a nyelv jellegzetessége.
Miért kellett az a lambda kifejezés? Elvileg van egy HeroService, ami egy tömböt adna vissza
Nem egészen, a service egy
Observable<Hero[]>-t ad vissza, aminek asubscribemetódusával tudsz feliratkozni a változására, így aszinkron módon tud működni a service.ezek a service osztályok csak arra vannak, hogy adatokat szolgáltassanak
Legiknább arra, de használhatóak arra is, hogy a front-end beállításait elérhetővé tegyék a komponensek között.
a komponensek meg gyakorlatilag minden másra
A komponens a webappodnak egy adott feladatát ellátó része, rendelkezik felülettel (template), formázással (stylesheet), meg logikával (.ts kód).ő
Observable<> meg azért kell, hogy ha servertől várnám az adatot, és ha az nem érkezik meg, akkor ne omoljon össze az alkalmazás, hanem várjon addig, amíg nem kapja meg
Inkább úgy fogalmaznék, hogy így nem blokkolja a UI-t, amíg megjön az adat, tehát nem "fagy be" az alkalmazás.
Tutorialba csináltunk még üzenet kezelést, pl, amikor betöltődnek az adatok, akkor kiírja hogy sikeres volt,ezt valós alkalmazásnál is használják, vagy nem ilyen formában gondolom, hanem lementik valahova?
Mit értesz lementés alatt? Front-end kódban nagyon ritkán van szükség perzisztens adattárolásra, egy üzenet megjelenítéséhez meg nem is kell.
köszi
lementés alatt semmit nem értek, vagyis nem látom, hogy mi értelme ily módon az üzenet kezelésnek, mármint az jó, hogy én most látom ezt, de a felhasználónak gondolom nem kell ez, esetleg el lehetne ezt küldeni servernek, vagy nem is tudom miért jó ez
Amúgy ha egy konkrét weboldalt akarok csinálni, akkor ha e szerint építeném fel a frontendet, akkor az megfelelő lenne? pl lenne 2 adatbázis táblám, akkor ehhez majd 2 service kell, azt ugyan így bedobom csak app mappán belülre és használom, vagy ezt elszeparálják vagy akármi?
-
bandi0000
nagyúr
sziasztok
Mivel nem találtam külön fórumot, remélem itt is elfér, vagy lehet ide is tartozik, ha nem akkor majd törlik
Angular Tour of Heroes tutorialt csinálgatom, most barátkozok a javascript/typescript világával
Nagyon jól össze van szedve ez a tutorial, de azért van pár kérdés, ami részben az angol tudásom, részben a tudatlanságomnak köszönhetek, szóval ha tudna valaki pár mondatban segíteni, azt megköszönném
Construktor, és az ngOninit zavart össze kicsit, konstruktorban csak a függőségeket adta át a tutorial, ha jól értelmezem, de akkor mit csinál ez az ngOninit? Gyakorlatilag itt használtuk mindkettőt
export class HeroesComponent implements OnInit {
heroes:Hero[];
selectedHero: Hero;
onSelect(hero: Hero): void {
this.selectedHero = hero;
}
getHeroes(): void {
this.heroService.getHeroes()
.subscribe(heroes => this.heroes = heroes);
}
constructor(private heroService: HeroService) { }
ngOnInit() {
this.getHeroes();
}
}Ha már itt a kód, akkor függvénynél, miért kellett hivatkozni ? saját magára? this-el, vagy csak ez a szintaktika és kész?
Miért kellett az a lambda kifejezés? Elvileg van egy HeroService, ami egy tömböt adna vissza
Nagyon nem vagyunk vele barátok, nem tudom felfogni, hogy mikor mit csinál, hiába próbálkoztam már megszeretni
Ennyi lenne kb, meg pár amit szerintem értek, de inkább kérdezek, nehogy félre értsem
ezek a service osztályok csak arra vannak, hogy adatokat szolgáltassanak
a komponensek meg gyakorlatilag minden másra
Observable<> meg azért kell, hogy ha servertől várnám az adatot, és ha az nem érkezik meg, akkor ne omoljon össze az alkalmazás, hanem várjon addig, amíg nem kapja meg
Tutorialba csináltunk még üzenet kezelést, pl, amikor betöltődnek az adatok, akkor kiírja hogy sikeres volt,ezt valós alkalmazásnál is használják, vagy nem ilyen formában gondolom, hanem lementik valahova?
Új hozzászólás Aktív témák
-
Fórumok
PROHARDVER! - hardver fórumok
Notebookok TV & Audió Digitális fényképezés Alaplapok, chipsetek, memóriák Processzorok, tuning Hűtés, házak, tápok, modding Videokártyák Monitorok Adattárolás Multimédia, életmód, 3D nyomtatás Nyomtatók, szkennerek Tabletek, E-bookok PC, mini PC, barebone, szerver Beviteli eszközök Egyéb hardverek PROHARDVER! BlogokMobilarena - mobil fórumok
Okostelefonok Mobiltelefonok Okosórák Autó+mobil Üzlet és Szolgáltatások Mobilalkalmazások Tartozékok, egyebek Mobilarena blogokIT café - infotech fórumok
Infotech Hálózat, szolgáltatók OS, alkalmazások SzoftverfejlesztésGAMEPOD - játék fórumok
PC játékok Konzol játékok MobiljátékokLOGOUT - lépj ki, lépj be!
LOGOUT reakciók Monologoszféra FototrendFÁRADT GŐZ - közösségi tér szinte bármiről
Tudomány, oktatás Sport, életmód, utazás, egészség Kultúra, művészet, média Gazdaság, jog Technika, hobbi, otthon Társadalom, közélet Egyéb Lokál PROHARDVER! interaktív
- ThinkPad T14s Gen 2 i5-1135G7 16GB 512GB FHD 1 év garancia
- BESZÁMÍTÁS! Asus Z270 i7 6700 16GB DDR4 512GB SSD GTX 1060 6GB Rampage SHIVA DeepCool 400W
- ÚJ - MACBOOK PRO 16" M5 MAX 18C CPU / 40C GPU / 48 GB RAM / 2TB + 3 ÉV APPLE Care PLUS + ÁFÁ-s
- Telefon felvásárlás!! iPhone 14/iPhone 14 Plus/iPhone 14 Pro/iPhone 14 Pro Max
- AKCIÓ! AMD Ryzen 7 5700X3D 8 mag 16 szál processzor garanciával hibátlan működéssel
Állásajánlatok
Cég: Laptopműhely Bt.
Város: Budapest

köszönöm
).
, időközben változott a helyzet, mert elgépeltem a másik laptopomon : Mégsem false hanem true, de miért vált át az xa1.length 4 -ből 5-re, amikor mindkettő undefined ? A typeof is pedig mindkettőnél mégiscsak undefined lesz .





