Угловая переменная 5 для автоматического изменения переменной

Улучшенная версия Ответ Артема Баргера :

function getParameterByName(name) {
    var match = RegExp('[?&]' + name + '=([^&]*)').exec(window.location.search);
    return match && decodeURIComponent(match[1].replace(/\+/g, ' '));
}

Для получения дополнительной информации об улучшении см .: http://james.padolsey.com/javascript/bujs -1-getparameterbyname /

0
задан o.o 13 July 2018 в 18:44
поделиться

1 ответ

Вы можете сделать это, используя BehaviorSubject, который имеет понятие «текущее значение». Он сохраняет последнее значение, которое исходит от его потребителей, и всякий раз, когда подписывается новый Observer, он сразу получает «текущее значение» из BehaviorSubject.

Создает отдельный сервис для данных о количестве.

service.ts

//set the initial value here
amount=new BehaviorSubject(0);

component.ts

ChangeDetectorRef

Что это означает, если есть случай, когда любая вещь внутри вашей модели (например, ваш класс) изменился, но он не отразил представление, вам может потребоваться уведомить Angular, чтобы обнаружить эти изменения (обнаружить локальные изменения) и обновить представление.

constructor(private ref: ChangeDetectorRef,subj:SubjectService) {
          subj.amount.subscribe((data)=>{
          this.amount=data;
          this.myString = `Hello, you have ${this.amount} dollars.`;
       //check for changes then it will update the view
          this.ref.markForCheck();  
          })
        setTimeout(() => {
          //change amount data after 1 second 
           subj.amount.next(40);          
        }, 1000);
       }

пример здесь : https://stackblitz.com/edit/changedetection-using-subject?file=src%2Fapp%2Fapp.component.ts

3
ответ дан Chellappan 17 August 2018 в 12:15
поделиться
Другие вопросы по тегам:

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