Я пытаюсь сделать алфавитную закладку.Есть символы от A до Z, которые должны направлять пользователя к первому элементу с идентификатором этой буквы.Работает на пару секунд.Я имею в виду, что когда я щелкаю по нему, я вижу первый элемент с выбранной буквой, но сразу после того, как получаю эту ошибку:
Runtime Error: Uncaught (in promise): invalid views to insert
c@http://localhost:8100/build/polyfills.js:3:19752
u/<@http://localhost:8100/build/polyfills.js:3:19174
NavControllerBase.prototype._fireError@http://localhost:8100/build/vendor.js:53343:13
NavControllerBase.prototype._failed@http://localhost:8100/build/vendor.js:53336:9
NavControllerBase.prototype._nextTrns/<@http://localhost:8100/build/vendor.js:53383:53
F</l</t.prototype.invoke@http://localhost:8100/build/polyfills.js:3:14974
onInvoke@http://localhost:8100/build/vendor.js:5396:24
F</l</t.prototype.invoke@http://localhost:8100/build/polyfills.js:3:14901
F</c</r.prototype.run@http://localhost:8100/build/polyfills.js:3:10124
f/<@http://localhost:8100/build/polyfills.js:3:20240
F</l</t.prototype.invokeTask@http://localhost:8100/build/polyfills.js:3:15649
onInvokeTask@http://localhost:8100/build/vendor.js:5387:24
F</l</t.prototype.invokeTask@http://localhost:8100/build/polyfills.js:3:15562
F</c</r.prototype.runTask@http://localhost:8100/build/polyfills.js:3:10815
o@http://localhost:8100/build/polyfills.js:3:7887
F</h</e.invokeTask@http://localhost:8100/build/polyfills.js:3:16823
p@http://localhost:8100/build/polyfills.js:2:27646
v@http://localhost:8100/build/polyfills.js:2:2789
Я пытался его погуглить, но не смогнайдите его.
Html:
<ion-header>
<ion-navbar>
<button ion-button menuToggle>
<ion-icon name="menu"></ion-icon>
</button>
</ion-navbar>
</ion-header>
<ion-content padding>
<ion-list>
<ion-item *ngFor="let a of alf">
<a href="#{{a}}"> {{a}} </a>
</ion-item>
</ion-list>
<ion-list>
<ion-item *ngFor="let i of players">
<button block (click)="showToast(i.player)" style="text-align:start;" id="{{i.player.slice(0,1)}}" >
<img src="{{i.logo}}" width="30%" height="100%" style="display: inline" />
<p style="display: inline"> {{i.player}}</p>
</button>
</ion-item>
</ion-list>
</ion-content>
Оба списка печатаются нормально, и когда я проверяю код, я вижу, что якоря соответствуют моим ожиданиям, а кнопки с идентификатором.= "letter".
Компонент:
import { Component } from "@angular/core";
import { PlayersService } from "./players-service";
import { Players } from "./players";
import { ToastController } from "ionic-angular";
@Component({
selector: 'page-player',
templateUrl: 'players.html'
})
export class PlayersPage{
players : Players[];
alf : String[];
ngOnInit() : void{
this.listar();
this.alfabeto();
let teste = this.teste("Banana");
this.showToast("Funcionando " + teste);
}
constructor(private service : PlayersService, private toastCtrl : ToastController){
}
listar(){
this.service.findAll().subscribe(res=>{
this.players= res;
});
}
showToast(data : string) : void{
let toast = this.toastCtrl.create({
message : data,
duration : 5000,
position: 'bottom'
});
toast.present(toast);
}
alfabeto(){
this.alf = ['2','A','B','C','D','F','G','H','I','J','K','L','M','N','O','P','Q','R','S','T','U','V','X','Y','Z'];
}
teste(player : string) : String{
console.log(player);
let a = player.slice(0,1);
return a;
}
}
"alfabeto ()" - это функция, заполняющая массив букв.teste () разрезает имя элемента до последней буквы.Я не могу показать список закладок, потому что он не мой, но кроме букв y и b, есть один элемент в нижнем регистре (я исправлю его последним), все остальные в верхнем регистре.У вас есть какие-нибудь подсказки, почему это не работает?