0

Ich habe die Lösungen, die in anderen Fragen und Fragen gegeben wurden, nachgeschlagen, aber ich kann es immer noch nicht lösen. Das Problem wird ngOnInit zweimal aufgerufen, wenn die Komponente zum ersten Mal initialisiert wird. Ich teile den Code unten für weitere Informationen.Angular 4 ngOninit zweimal aufgerufen

abgewinkelte Ausführung

@ Winkel/cli: 1.2.6 Knoten: 6.10.3 os: Darwin x64

@angular/cli: 1.2.6 
@angular/common: 4.3.2 
@angular/compiler: 4.3.2 
@angular/compiler-cli: 4.3.2 
@angular/core: 4.3.2 
@angular/forms: 4.3.2 
@angular/http: 4.3.2 
@angular/platform-browser: 4.3.2 
@angular/platform-browser-dynamic: 4.3.2 
@angular/router: 4.3.2 

//

import { DashboardService } from './../dashboard.service'; 
import { Component, OnInit, Input, NgZone } from '@angular/core'; 
import { RouterModule, Router } from "@angular/router"; 
import { MenuService } from './menu.service'; 
import { AuthService } from '../../auth/auth.service'; 

@Component({ 
    selector: 'ca-menu', 
    templateUrl: './menu.component.html', 
    styleUrls: ['./menu.component.css'], 
    providers: [MenuService, AuthService] 
}) 
export class MenuComponent implements OnInit { 
    @Input() showLogo = true; 
    sections: {}[]; 
    selectedSection: number = 0; 
    constructor(
    private _menuService: MenuService, 
    private _dashboardService: DashboardService, 
    private _router: Router, private _authService: AuthService, 
) { } 

    ngOnInit() { 
    // let user_id = this._authService.getUserId(); 
    // this.sections = this._menuService.getSections(); 
    // this.sections.map(section => { 
    // let ignored_ids = section['ignored_ids'] ? section['ignored_ids'] : []; 
    // section['blocked'] = ignored_ids.indexOf(Number(user_id)) == -1 ? false : true; 
    // }); 
    console.log('test'); 

    } 


    setSection(section_name: String) { 
    // this._dashboardService.current_section.next(section_name); 
    } 
} 

// Template Seite

<div *ngIf='sections'> 
    <div class="container-fluid logo" *ngIf="showLogo"> 
     <img src="assets/logo_main.png"> 
    </div> 
    <div *ngFor="let section of sections; let i=index"> 
     <div class="menu-component d-block" *ngIf='!section.blocked' (click)='setSection(section.section_name)' [routerLink]="[section.url]" routerLinkActive="selected"> 
      <i [class]="section.icon" aria-hidden="true" style="margin: 0 10px"></i> {{section.name}} 
     </div> 
    </div> 
</div> 
+1

Können Sie zeigen, wo Sie diese Komponente verwenden? Sind Sie sicher, dass Sie 2 Instanzen nicht erstellt haben? –

+0

@Jamil Alisgenderov Können Sie Ihre app.module.ts posten? Sehen Sie sich auch diesen Github-Link an: [Github Issue] (https://github.com/angular/angular/issues/6782) – mrsan22

Antwort

0

Ich habe 2 Instanzen irgendwie erstellt, danke!

Verwandte Themen