Выполнение кода, когда компонент загружен в angular 2, аналогично angular 1 app.run

angular angular-component-router

719 просмотра

1 ответ

Я начинаю с угловой 2, у меня есть несколько вопросов, как

В угловом формате я использовал для определения переменной в конфигурации маршрутизации и, основываясь на этой переменной, я написал код внутри app.run (), который проверит, истинна ли эта переменная, что-то должно произойти. ТАК что он делает, когда когда-либо меняется маршрутизатор, он проверяет это условие.

Теперь, что если я хочу добиться того же самого в угловом 2. У нас нет app.run (), вместо этого у нас есть начальная загрузка и возможно ли определить пользовательскую переменную в конфигурации маршрутизатора?

Я попытался найти, но не смог найти ответ на свой вопрос. Пожалуйста, дайте мне знать, если требуется какое-либо разъяснение относительно вопроса, который я задал.

Спасибо

Автор: RKD Источник Размещён: 08.11.2019 11:00

Ответы (1)


1 плюс

Решение

Когда компонент загружается в angular2, вызывается OnInit жизненного цикла - если вы хотите проверять что-либо из пользовательской конфигурации при каждой загрузке нового компонента, вы можете написать код там, например:

import { Component, OnInit } from '@angular/core'

@Component({
    ...
})
export class MyComponent implements OnInit {

    ngOnInit() {
        // write the check for the config value in here
    }
}

Единственное, что вам нужно сделать, - это импортировать тот файл, в котором есть пользовательский конфиг, и использовать его внутри метода ngOnInit для каждого определяемого вами компонента.

Другим способом было бы подписаться на сервис Location, экспортируемый по angular, выполняя проверку каждый раз, когда изменяется url местоположения. Чтобы не повторять подписку, вам нужно поместить этот код в ваш основной файл AppComponent. Единственное, что вам нужно сделать, это иметь глобальный сервис, который вы импортируете во все ваши компоненты, который содержит какой-то флаг, который может сообщить вам, установлено ли для вашего значения конфигурации определенное значение.

import { Component, OnInit } from '@angular/core'
import { Location } from '@angular/common'

... METADATA ...

export class AppComponent implements OnInit {

    constructor(private location: Location) {}

    ngOnInit() {
        this.location.subscribe((value) => {
            // do check in here / set value inside global service
        });
    }
Автор: peppermcknight Размещён: 23.08.2016 03:41
Вопросы из категории :
32x32