Add readme
This commit is contained in:
parent
1c37bfd535
commit
12310fa380
123
README.md
Normal file
123
README.md
Normal file
@ -0,0 +1,123 @@
|
|||||||
|
Angular
|
||||||
|
|
||||||
|
Kloonige https://bitbucket.org/mkalmo/i399exng2 repo ja importige see IDE-sse.
|
||||||
|
|
||||||
|
1. Käivitage rakendus arenduse serveris:
|
||||||
|
|
||||||
|
a) Laadige teegid:
|
||||||
|
> npm install
|
||||||
|
|
||||||
|
b) Käivitage server:
|
||||||
|
> npm run serve # rakendus on nüüd kättesaadav aadressilt http://localhost:3001
|
||||||
|
|
||||||
|
2. Lisage komponenti (app/app.cmp.ts) väli "items" ja pange vaade (app/app.html) seda
|
||||||
|
välja näitama:
|
||||||
|
|
||||||
|
items = [1, 2, 3];
|
||||||
|
|
||||||
|
ja
|
||||||
|
|
||||||
|
<div *ngFor='let item of items'>
|
||||||
|
{{ item }}
|
||||||
|
</div>
|
||||||
|
|
||||||
|
3. Lisage lehele andmete sisestuse võimalus:
|
||||||
|
a) Lisage sisestuse kast: <input [(ngModel)]="newTaskTitle"/>
|
||||||
|
b) Lisage nupp sisestamiseks: <button (click)="addNewTask()">Lisa</button >
|
||||||
|
c) Lisage kontrollerisse väli, mis hoiab uue elemendi infot ja väli,
|
||||||
|
mis hoiab kõiki sisestatud elemente.
|
||||||
|
|
||||||
|
newTaskTitle: string;
|
||||||
|
tasks: string[] = [];
|
||||||
|
|
||||||
|
d) Lisage kontrollerisse meetod, mis sisestuse väljale kirjutatu listi lisab.
|
||||||
|
addNewTask(): void {
|
||||||
|
this.tasks.push(this.newTaskTitle);
|
||||||
|
}
|
||||||
|
|
||||||
|
4. Lisage iga sisestatud elemendi järgi märgistamise kast. Märgistades
|
||||||
|
peaks muutuma elemendi stiil.
|
||||||
|
a) Uus element peaks olema järgmise struktuuriga: { title: 'Hello', done: false }.
|
||||||
|
ehk väljanäidatavale osale lisandub veel lipuke, kus hoitaks infot täidetuse kohta.
|
||||||
|
|
||||||
|
Selleks võite teha eraldi klassi:
|
||||||
|
|
||||||
|
export class Task {
|
||||||
|
done: boolean = false;
|
||||||
|
|
||||||
|
constructor(public title : string) {};
|
||||||
|
}
|
||||||
|
|
||||||
|
b) Lisage komponendile (@Component annotatsiooni parameetrina) viide
|
||||||
|
stiilile: styleUrls: ['app/list/list.css']
|
||||||
|
|
||||||
|
c) Lisage märgistamise kast ja stiili muutmise kood.
|
||||||
|
|
||||||
|
<span [class]="task.done ? 'done' : ''">{{ task.title }}</span>
|
||||||
|
<input type="checkbox" [(ngModel)]="task.done"/>
|
||||||
|
|
||||||
|
5. Näidake andmeid, mis tulevad väliselt veebiteenuselt.
|
||||||
|
|
||||||
|
a) Käivitage andmete veebiteenus:
|
||||||
|
> npm run back-end # teenus on nüüd kättesaadav aadressilt http://localhost:3000
|
||||||
|
# sellele on tehtud proxi ka aadressilt http://localhost:3001
|
||||||
|
# (webpack.config.js rida 31)
|
||||||
|
|
||||||
|
b) Lisage komponendi konstruktorisse parameeter http:
|
||||||
|
constructor(private http: Http) {}
|
||||||
|
|
||||||
|
c) Tehke päring teenusele ja näidake teenuselt saadud andmeid:
|
||||||
|
|
||||||
|
updateTasks() {
|
||||||
|
return this.http
|
||||||
|
.get('api/tasks')
|
||||||
|
.toPromise()
|
||||||
|
.then(response => this.tasks = response.json());
|
||||||
|
}
|
||||||
|
|
||||||
|
6. Tehke nii, et andmete sisestamisel saadetakse need veebiteenusele:
|
||||||
|
|
||||||
|
saveTask(task: Task) {
|
||||||
|
return this.http
|
||||||
|
.post('api/tasks', new Task(this.newTaskTitle))
|
||||||
|
.toPromise()
|
||||||
|
.then(() => {
|
||||||
|
this.updateTasks();
|
||||||
|
this.newTaskTitle = '';
|
||||||
|
});
|
||||||
|
}
|
||||||
|
|
||||||
|
7. Kasutage veebiteenusega suhtlemiseks teenust TaskService (app/task.srv.ts).
|
||||||
|
Lisage mooduli (app/app.module.ts) providers listi TaskService ja
|
||||||
|
süstige see komponenti: constructor(private taskService: TaskService) {}
|
||||||
|
|
||||||
|
8. Lisage ühe elemendi vaatamise võimalus. Vaatamiseks on eraldi aadress.
|
||||||
|
|
||||||
|
a) Lisage mooduli (app/app.module.ts) imports listi ruuteri moodul
|
||||||
|
RouterModule.forRoot(routes, { useHash: true })
|
||||||
|
konfiguratsioon on välises failis:
|
||||||
|
import { routes } from "./routes";
|
||||||
|
|
||||||
|
Komponentidest on toorikud olemas app/list/list.cmp.ts ja
|
||||||
|
app/view/view.cmp.ts
|
||||||
|
|
||||||
|
b) Lisage peakomponendi vaatesse (app/app.html) koht alamkomponentide
|
||||||
|
näitamiseks: <router-outlet></router-outlet>
|
||||||
|
|
||||||
|
c) Lisage link vaatesse navigeerimiseks:
|
||||||
|
<a routerLink="/view/{{ task._id }}">{{ task.title }}</a>
|
||||||
|
|
||||||
|
d) Parameetri (id) saate:
|
||||||
|
const id = parseInt(this.route.snapshot.paramMap.get('id'));
|
||||||
|
|
||||||
|
e) Tagasi navigeerimiseks: this.router.navigateByUrl('/list');
|
||||||
|
|
||||||
|
9. Paketeerige rakendus
|
||||||
|
> npm run build
|
||||||
|
tekkis build kataloog
|
||||||
|
|
||||||
|
Laadige rakendus aadressilt: http://localhost:3000
|
||||||
|
Ehk staatiliselt, läbi "json-server"-i.
|
||||||
|
|
||||||
|
Lahendused: https://youtu.be/s3-R0RuO3aM
|
||||||
|
|
Loading…
Reference in New Issue
Block a user