Активная ссылка на маршрутизатор не работает должным образом с ngModel
Я работаю с маршрутизацией и использую routerLinkActive, чтобы сделать ссылку активной. При использовании ngModel в html ссылка не активируется.
Это точный сценарий..
В компоненте я вызываю веб-сервис, который возвращает объект или массив объектов. В HTML я использую ngModel для полей объекта. Активная ссылка на маршрутизатор работает нормально, если я использую прямые поля, такие как строка или число. Но это не работает, когда я пытаюсь получить доступ к полям из объекта.
Это странно.
Вот что я пытаюсь сделать.
TS:
export class MyComponent implements OnInit {
headers;
allLogs: Array<any> = [];
selectedEntry: any;
ngOnInit() {
var token = localStorage.getItem('x-auth-token');
this.headers = new Headers({
'x-auth-token' : token
});
this.getData(this.headers);
}
getData(headers){
this.exampleProvider.getAllEntries(headers)
.subscribe(
data => {
this.allLogs = JSON.parse(data['_body'])
this.selectedEntry = JSON.parse(JSON.stringify(this.allLogs[0]))
},
error => {
}
);
}
updateDate(event){
}
}
HTML:
<p>{{selectedEntry | json}}</p>
<input class="form-control" type="date" [ngModel]="selectedEntry.date" name="selectedDate" (ngModelChange)="updateDate($event)">
Когда я использую selectedEntry в ngModel, он работает нормально, а после получения даты он не работает.
Нужна помощь.
1 ответ
Поскольку getData()
это асинхронный вызов
До успешного вызова selectedEntry
будет нулевым
Таким образом, вы можете сделать любую из этих вещей
- Скрыть поле ввода, используя
<input class="form-control" *ngIf="selectedEntry!=null" type="date" [ngModel]="selectedEntry.date" name="selectedDate" (ngModelChange)="updateDate($event)">
ИЛИ ЖЕ
- замещать
selectedEntry:any;
с
selectedEntry:any={
date:''
}