У меня есть приложение angular 5.2.0 / Typescript 2.6.2 и Node 8.5.0, которое использует
HTML:
<button mat-raised-button id="submitDescription" class="submit-class" [ngStyle]="{'color':
themeFontColor()}" (click)="submit(false)">{{submit}}</button>
...
Component.ts:
....
submitBtn: HTMLElement;
.....
.....
ngOnInit{
......
.......
}
ngAfterViewInit() {
this.submitBtn = document.getElementById('submitDescription');
this.viewLoaded = true;
}
Теперь внезапно строка
this.submitBtn.style.display = 'none';
вызывает эту ошибку
Error: Uncaught (in promise): TypeError: Cannot read property 'style' of null
TypeError: Cannot read property 'style' of null
Подобный код теперь состоит из двух компонентов без каких-либо изменений кода. Я получаю эту ошибку в обоих местах, что заставляет меня думать, что что-то внешнее изменилось, но я не знаю, что именно. Могут ли сервисные работники вызвать эту проблему?
EDIT:
HTML:
<input [ngClass]='{"has-error":(wholeDescriptionRef.invalid && submitted), "has-success":(wholeDescriptionRef.valid && submitted)}' type="text" class="form-control query-input content-light-blue-color" id="wholeDescription" placeholder="{{ezzy.LOCALIZATION.requestPlaceHolder}}"
[ngStyle]="{'background-color': ezzy.getThemeSecondaryColor()}" name="wholeDescription" [(ngModel)]="wholeDescription" maxlength="100" #wholeDescriptionRef="ngModel" required (keyup)="submitOnEnter($event)">
<button mat-raised-button #submitDescription class="submit-class" [ngStyle]="{'color': ezzy.getThemeFontColor()}" (click)="submit(false)">{{ezzy.LOCALIZATION.submit}}</button>
<span [hidden]="!ezzy.supportsSpeech" (click)="ezzy.startDictation(this, 'wholeDescription', 'submit', 'wholeDescription', 'submitDescription')" class="input-group-addon cursor-pointer icon-style" [ngStyle]="{'color':'#ffffff','background-color': ezzy.getThemeHeaderColor(), 'border': ezzy.getThemeBorderColor(), 'border-collapse': 'collapse'}">
<i class="fa fa-microphone fa-lg" aria-hidden="true"></i></span>