私はフロントエンドpart.Iを開発するためにangular4を使用しています。コンポーネントにサブスクライブしたいオブザーバブルを返すサービスがあります。 ngOnInitメソッドの後であってもそれを保持し、デフォルト値に戻らないようにします。 これは私のコンポーネントのコードです:サブスクライブメソッドのコンポーネントの属性を変更する
import {CreateUserComponent} from '../create-user/create-user.component';
import {UpdateUsersCredentialsComponent} from '../update-users-credentials/update-users-credentials.component';
import { Component, OnInit, AfterViewInit } from '@angular/core';
import { MdDialog, MdDialogRef, MdDialogConfig } from '@angular/material';
import{UsersListService} from '../shared/users-list.service'
import { User } from 'app/pages/Users/shared/user';
@Component({
selector: 'vr-users-list',
templateUrl: './users-list.component.html',
styleUrls: ['./users-list.component.scss']
})
export class UsersListComponent implements OnInit,AfterViewInit {
private users:any[]=["1","2","3"];
private selectedUser:User;
constructor(public dialog: MdDialog,private userListService: UsersListService) {
}
public get $selectedUser(): User {
return this.selectedUser;
}
public set $selectedUser(value: User) {
this.selectedUser = value;
}
ngOnInit() {
this.userListService.getUserList().subscribe (
data =>{
console.log("those are data "+data.length);
this.users=data;
});
}
ngAfterViewInit(){
this.userListService.getUserList().subscribe (
data =>{
console.log("those are data "+data.length);
this.users=data;
});
}
openUsersDetails() {
let config = new MdDialogConfig();
let dialogRef:MdDialogRef<UpdateUsersCredentialsComponent> = this.dialog.open(UpdateUsersCredentialsComponent, config);
dialogRef.componentInstance.email =this.selectedUser.$email;
}
openCreateUser() {
this.dialog.open(CreateUserComponent);
}
}
これでgetUserList方法
getUserList(){
//this method is returning the items
return this.http.get(this.usersUrl)
.map(res => {
this.users=res['items'];
return this.users;
});
}
サービスでObservableから値をどのように発信しているかを示す場合は、getUserList()メソッドでコードを表示してください。 –
投稿 – fbm