Угловая 4+ Функция перезагрузки при каждой загрузке компонента

Установите options(stringsAsFactors = FALSE) в начале вашей R сессии, или в .RProfile.

Как сказано в комментарии ниже, могут предложить, stringsAsFactors является немного спорной темой в рамках R сообщества. Как раздражает вы найдете это значение по умолчанию, может зависеть в некоторой степени от того, сколько времени вы тратите с помощью R, чтобы соответствовать многим «стандартным» статистическим моделям (lm, glm и т. Д.). Многие из этих подгоночных моделей и связанные с ними функции основаны на использовании типа данных факторов.

Если вы проводите большую часть своего времени, выполняя другие «общие» типы анализа данных, вы можете обнаружить, что это по умолчанию более раздражает.

Широко считается опасным для глобального набора stringsAsFactors = FALSE по причинам, указанным ниже: при совместном использовании кода может возникнуть большая путаница. Действительно, даже если вы работаете в основном в одиночку, участие в сетевых сообществах, таких как StackOverflow, может быть сложным, если вы настаиваете на том, чтобы запустить R с помощью stringsAsFactors = FALSE: ваш ответ на вопрос может не работать для OP, иначе вы не сможете реплицировать ошибки другие видят!

Конечно, каждый может самостоятельно выбирать, как наилучшим образом управлять этими рисками для себя.

2
задан Munerz 13 July 2018 в 13:53
поделиться

2 ответа

setInterval не уничтожается при уничтожении компонента, вам нужно сохранить идентификатор интервала в своем классе и использовать функцию gQ] clearInterval javascript, чтобы очистить его от вашего компонента destroy hook ngOnDestroy:

import {Component, OnDestroy} from '@angular/core';

@Component({ ... })
export class YourClass implements OnDestroy {

    public intervalId: any; 

    public greenToAmber() {
        let x = 0;
        // registering interval
        this.intervalId = setInterval(function () {
          // ..... Rest of code
        }, 500);
      }
    }

    public ngOnDestroy () {
        if (this.intervalId !== undefined) {
            clearInterval(this.intervalId); // cleaning interval
        }
    }
}

Надеется, что это поможет.

2
ответ дан Julien Metral 17 August 2018 в 12:40
поделиться

Вы устанавливаете демон с помощью setInterval. Ожидается поведение, о котором вы говорите. Так работает JavaScript. Его не Угловая специфичность.

SetInterval всегда возвращает идентификатор, который вы можете отслеживать в своем контроллере. Если вы хотите его уничтожить, убедитесь, что вы сделали это конкретно.

например:

greenToAmber() {
        let x = 0;
        $scope.myDemon = setInterval(function () {
          x++;
          ..... Rest of code
        }, 500);
      }
    }

//Somewhere else; where you want to destroy the interval/stop the interval:
If($scope.myDemon) {
    clearInterval($scope.myDemon);
}
0
ответ дан Pruthvi Kumar 17 August 2018 в 12:40
поделиться
Другие вопросы по тегам:

Похожие вопросы: