-
GAMEPOD.hu
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
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 megszeretniEnnyi 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?
Xbox One: bandymnc
-
bandi0000
nagyúr
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?
Xbox One: bandymnc
-
bandi0000
nagyúr
-
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?[ Szerkesztve ]
Xbox One: bandymnc
-
bandi0000
nagyúr
válasz martonx #6984 üzenetére
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
Xbox One: bandymnc
-
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?
Xbox One: bandymnc
-
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?
Xbox One: bandymnc
-
bandi0000
nagyúr
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
Xbox One: bandymnc
-
bandi0000
nagyúr
válasz martonx #7002 üzenetére
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
Xbox One: bandymnc
-
bandi0000
nagyúr
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);
}Xbox One: bandymnc
-
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?
Xbox One: bandymnc
-
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
Xbox One: bandymnc
-
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
Xbox One: bandymnc
-
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 akarokXbox One: bandymnc
-
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
Xbox One: bandymnc
-
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é?
Xbox One: bandymnc
-
bandi0000
nagyúr
válasz bandi0000 #7031 üzenetére
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
Xbox One: bandymnc
-
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
[ Szerkesztve ]
Xbox One: bandymnc
-
bandi0000
nagyúr
válasz bandi0000 #7035 üzenetére
é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
Xbox One: bandymnc
-
bandi0000
nagyúr
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
[ Szerkesztve ]
Xbox One: bandymnc
-
bandi0000
nagyúr
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
[ Szerkesztve ]
Xbox One: bandymnc
-
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
Xbox One: bandymnc
-
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 ?
Xbox One: bandymnc
-
bandi0000
nagyúr
válasz bandi0000 #7048 üzenetére
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?
Xbox One: bandymnc
-
bandi0000
nagyúr
válasz bandi0000 #7049 üzenetére
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
Xbox One: bandymnc
-
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
Xbox One: bandymnc
-
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?
Xbox One: bandymnc
-
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?
Xbox One: bandymnc
-
bandi0000
nagyúr
válasz martonx #7073 üzenetére
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?
Xbox One: bandymnc
-
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);
}Xbox One: bandymnc
-
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
[ Szerkesztve ]
Xbox One: bandymnc
-
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
Xbox One: bandymnc
-
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?
Xbox One: bandymnc
-
bandi0000
nagyúr
Á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
Xbox One: bandymnc
-
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 ?
Xbox One: bandymnc
Új hozzászólás Aktív témák
- Kerékpárosok, bringások ide!
- Újabb Samsungok telepíthetik a Galaxy AI-t
- bb0t: Gyilkos szénhidrátok, avagy hogyan fogytam önsanyargatás nélkül 16 kg-ot
- Mindent megtudtunk az új Nokia 3210-ről
- Milyen billentyűzetet vegyek?
- Képeken az egyik kameráját elvesztő Sony Xperia 10 VI
- nVidia tulajok OFF topikja
- Vezetékes FÜLhallgatók
- Léghűtés topik
- Érkezik Magyarországa az LG szuper dizájnos hordozható projektora
- További aktív témák...
Állásajánlatok
Cég: Promenade Publishing House Kft.
Város: Budapest
Cég: Ozeki Kft.
Város: Debrecen