角度学習:実践サービス
Set to active
およびSet to inactive
を使用して、アクティブと非アクティブの間でユーザーを切り替えることができます.目的は、サービスを作成し、同じ結果を得ることです.
アクティブユーザコード:
import { Component, EventEmitter, Input, Output } from '@angular/core';
@Component({
selector: 'app-active-users',
templateUrl: './active-users.component.html',
styleUrls: ['./active-users.component.css']
})
export class ActiveUsersComponent {
@Input() users: string[];
@Output() userSetToInactive = new EventEmitter<number>();
onSetToInactive(id: number) {
this.userSetToInactive.emit(id);
}
}
<h3>Active Users</h3>
<ul class="list-group">
<li
class="list-group-item"
*ngFor="let user of users; let i = index">
{{ user }} | <a href="#" (click)="onSetToInactive(i)">Set to Inactive</a>
</li>
</ul>
したがって、このコンポーネントはユーザーをリストします、そして、非アクティブにユーザをセットするクリック可能です.無効なユーザーコード:
import { Component, EventEmitter, Input, Output } from '@angular/core';
@Component({
selector: 'app-inactive-users',
templateUrl: './inactive-users.component.html',
styleUrls: ['./inactive-users.component.css']
})
export class InactiveUsersComponent {
@Input() users: string[];
@Output() userSetToActive = new EventEmitter<number>();
onSetToActive(id: number) {
this.userSetToActive.emit(id);
}
}
<h3>Inactive Users</h3>
<ul class="list-group">
<li
class="list-group-item"
*ngFor="let user of users; let i = index">
{{ user }} | <a href="#" (click)="onSetToActive(i)">Set to Active</a>
</li>
</ul>
アクティブユーザーと同じように、Clickableがクリックされると、ユーザーがアクティブに設定されます.アプリケーションコンポーネント
import { Component } from '@angular/core';
@Component({
selector: 'app-root',
templateUrl: './app.component.html',
styleUrls: ['./app.component.css']
})
export class AppComponent {
activeUsers = ['Max', 'Anna'];
inactiveUsers = ['Chris', 'Manu'];
onSetToInactive(id: number) {
this.inactiveUsers.push(this.activeUsers[id]);
this.activeUsers.splice(id, 1);
}
onSetToActive(id: number) {
this.activeUsers.push(this.inactiveUsers[id]);
this.inactiveUsers.splice(id, 1);
}
}
サービスの利用
我々は、同じサービスを使用して取得することができます.すべての新しいサービスを作成し、これらのサービスをコンポーネントで使用する必要があります.
新しいサービスの作成
私たちは、新しいサービスを作成するために、
ng g s <servicename>
コマンドを使用できます.import { Injectable } from '@angular/core';
import { CounterService } from './counter.service';
@Injectable({
providedIn: 'root'
})
export class UserServiceService {
constructor(private counterService : CounterService) { }
activeUsers = ['Max', 'Anna'];
inactiveUsers = ['Chris', 'Manu'];
setToActive(id: number) {
this.activeUsers.push(this.inactiveUsers[id]);
this.inactiveUsers.splice(id, 1);
this.counterService.incrementActiveToInactiveCounter();
}
setToInactive(id: number) {
this.inactiveUsers.push(this.activeUsers[id]);
this.activeUsers.splice(id, 1);
this.counterService.incrementInActiveToActiveCounter();
}
}
import { Injectable } from '@angular/core';
@Injectable({
providedIn: 'root'
})
export class CounterService {
activeToInactiveCounter = 0;
inActiveToActiveCounter = 0;
incrementActiveToInactiveCounter() {
this.activeToInactiveCounter++;
console.log("Active to Inactive Count:" + this.activeToInactiveCounter);
}
incrementInActiveToActiveCounter() {
this.inActiveToActiveCounter++;
console.log("Inactive to Active Count:" + this.inActiveToActiveCounter);
}
constructor() { }
}
import { Component, OnInit } from '@angular/core';
import { UserServiceService } from '../user-service.service';
@Component({
selector: 'app-active-users',
templateUrl: './active-users.component.html',
styleUrls: ['./active-users.component.css']
})
export class ActiveUsersComponent implements OnInit{
users: string[];
constructor(private userService:UserServiceService){}
onSetToInactive(id: number) {
this.userService.setToInactive(id);
}
ngOnInit() {
this.users = this.userService.activeUsers;
}
}
import { Component, OnInit } from '@angular/core';
import { UserServiceService } from '../user-service.service';
@Component({
selector: 'app-inactive-users',
templateUrl: './inactive-users.component.html',
styleUrls: ['./inactive-users.component.css']
})
export class InactiveUsersComponent implements OnInit{
users: string[];
constructor(private userService: UserServiceService) {}
onSetToActive(id: number) {
this.userService.setToActive(id);
}
ngOnInit() {
this.users = this.userService.inactiveUsers;
}
}
import { Component } from '@angular/core';
import { UserServiceService } from './user-service.service';
@Component({
selector: 'app-root',
templateUrl: './app.component.html',
styleUrls: ['./app.component.css'],
providers: [UserServiceService]
})
export class AppComponent {
}
したがって、これはサービスの使用のための単純なユースケースです.Rohithv 07 / 角の余分の材料
以上の手でいくつかの機能をカバー
角の余分の材料
以上の手でいくつかの機能をカバー
npm install --save-dev @angular-devkit/build-angular
npm install --save bootstrap@3
データバインド
指令
ngFor, ngIf, ngStyle, ngClass
Using renderer
Using HostListener
Using HostBinding
Building structural directive
サービス
Logging Service and injecting
Data Service
Injecting Services into Services @Injectable()
Services for Cross - component communication
ルーティング
Setting and loading routes
Router Links
Navigation Paths and styling active router links
Passing parameters to Routes
Fetch Route parameters, also Reactively
Query paramaters, Fragments
Nested Routes
Redirecting and wildcards
Guards
>> canActivate
>> canActivateChild
>> Fake auth service and canDeactivate
Passing static data to route
Resolve Guard
Location startergies useHash: true
観測量
Undestanding angular observables
Custom observables
Data, Errors, Completion
Operators, Subject
フォーム
Template Driven vs Reactive
テンプレート駆動
Creating form
Accessing form with @ViewChild
Validation and validation error
ngModel with two way binding
Grouping form controls
Radio buttons
Resetting forms
反応方式
Creating a form
Syncing HTML…
View on GitHub
Reference
この問題について(角度学習:実践サービス), 我々は、より多くの情報をここで見つけました
https://dev.to/rohithv07/angular-learning-practicing-services-1o58
テキストは自由に共有またはコピーできます。ただし、このドキュメントのURLは参考URLとして残しておいてください。
Collection and Share based on the CC Protocol
npm install --save-dev @angular-devkit/build-angular
npm install --save bootstrap@3
データバインド
指令
ngFor, ngIf, ngStyle, ngClass
Using renderer
Using HostListener
Using HostBinding
Building structural directive
サービス
Logging Service and injecting
Data Service
Injecting Services into Services @Injectable()
Services for Cross - component communication
ルーティング
Setting and loading routes
Router Links
Navigation Paths and styling active router links
Passing parameters to Routes
Fetch Route parameters, also Reactively
Query paramaters, Fragments
Nested Routes
Redirecting and wildcards
Guards
>> canActivate >> canActivateChild >> Fake auth service and canDeactivate
Passing static data to route
Resolve Guard
Location startergies useHash: true
観測量
Undestanding angular observables
Custom observables
Data, Errors, Completion
Operators, Subject
フォーム
Template Driven vs Reactive
テンプレート駆動
Creating form
Accessing form with @ViewChild
Validation and validation error
ngModel with two way binding
Grouping form controls
Radio buttons
Resetting forms
反応方式
Creating a form
Syncing HTML…
View on GitHub
Reference
この問題について(角度学習:実践サービス), 我々は、より多くの情報をここで見つけました https://dev.to/rohithv07/angular-learning-practicing-services-1o58テキストは自由に共有またはコピーできます。ただし、このドキュメントのURLは参考URLとして残しておいてください。
Collection and Share based on the CC Protocol