При вызове одной функции компонента другой, давая неопределенную ошибку @viewChild AfterViewInit - PullRequest
0 голосов
/ 03 мая 2019

Я пытаюсь вызвать функцию showProfileImage (), которая является моим компонентом leftSidebar в компоненте editprofile, чтобы обновить изображение после его обновления, для этого я использую @viewchild и AfterViewInit, но при этом возникает ошибка.1001 *

Я хочу вызвать функцию из функции leftbarComponent showProfileImage в этом компоненте.

EditprofileComponent.ts

export class EditprofileComponent implements OnInit, AfterViewInit {
  @ViewChild(LeftbarComponent)
  private showPI: LeftbarComponent;
  constructor(private authenticationService: AuthenticationService,
              private studentService: StudentService,
              private urlConfig: AppConfig) {

    this.currentUser = this.authenticationService.currentUserValue;
    this.getStudent(this.currentUser.id);
  }
  url = this.urlConfig.apiUrl1 ;
  interUrl = this.urlConfig.interUrl1 ;

  onFileSelected(event) {

  }
  ngOnInit() {

  }
  ngAfterViewInit() {
     this.showPI.showProfileImage();
  }
  getStudent(id: number)  {
    this.studentService.getAdminInfo(id)
                      .subscribe(
                        (data) => {
                        this.initForm(data[0]);
                        }
                      );
  }

  onSubmit(studentData: any) {
  }
}

LeftbarComponent.ts

export class LeftbarComponent implements OnInit {

  currentUser: User;
  profileImage: any;
  constructor(private authenticationService: AuthenticationService,
              private dashboarService: DashboardService,
              private urlConfig: AppConfig) {
    this.currentUser = this.authenticationService.currentUserValue;
   }
   url = this.urlConfig.apiUrl1 ;
   interUrl = this.urlConfig.interUrl1 ;
   showProfileImage(): void {
    this.dashboarService.getProfileImage(this.currentUser.id)
    .subscribe(
      (data) => {
        this.profileImage = data.image;
  });
   }
  ngOnInit() {
    this.showProfileImage();
    (function () {
      // Toggle Sidebar
      const treeviewMenu: any = $('.app-menu');
    $('[data-toggle="sidebar"]').unbind('click');
    $('[data-toggle="sidebar"]').click(function(event) {
      event.preventDefault();
      $('.app').toggleClass('sidenav-toggled');
    });
    // Activate sidebar treeview toggle
    $('[data-toggle="treeview"]').unbind('click');
    $('[data-toggle="treeview"]').click(function(event) {
      event.preventDefault();
      if (!$(this).parent().hasClass('is-expanded')) {
        treeviewMenu.find('[data-toggle="treeview"]').parent().removeClass('is-expanded');
      }
      $(this).parent().toggleClass('is-expanded');
    });
    // Set initial active toggle
    $('[data-toggle="treeview."].is-expanded').parent().toggleClass('is-expanded');
    })();

  }

}
...