I'm create interfaces for some returns in my API The page works fine, but in console show many errors "Cannot read property "example" of undefined" My error dont are the same of javascript, because I return data in typescript and this error show only because the angular interpolation
I tried to make diferent interfaces, with help of some devs But the error never die
Interface:
export interface Banner {
ds_Imagem: string;
ds_titulo: string;
}
banner.component.html
<div id="inicio">
<div class="carousel" style="min-height: 43vh">
<a [style.backgroundImage]="'url('+ banner[0]?.ds_Imagem +')'" class="carousel-item" href="{{banner[0].ds_link}}" style="width: 100vw; min-height: 43vh;
background-repeat: space; background-size: 100% 100%;">
<div class="textoCentral">
<span>{{banner[0]?.ds_titulo}}</span>
</div>
</a>
<a [style.backgroundImage]="'url('+ banner[1].ds_Imagem +')'" class="carousel-item" href="{{banner[1].ds_link}}" style="width: 100vw; min-height: 43vh;
background-repeat: space; background-size: 100% 100%;">
<div class="textoCentral">
<span>{{banner[1]?.ds_titulo}}</span>
</div>
</a>
<a [style.backgroundImage]="'url('+ banner[2].ds_Imagem +')'" class="carousel-item" href="{{banner[2].ds_link}}" style="width: 100vw; min-height: 43vh;
background-repeat: space; background-size: 100% 100%;">
<div class="textoCentral">
<span>{{banner[2]?.ds_titulo}}</span>
</div>
</a>
</div>
</div>
Error:
ERROR TypeError: Cannot read property '0' of undefined
at Object.eval [as updateRenderer] (SLIDERComponent.html:6)
at Object.debugUpdateRenderer [as updateRenderer] (core.js:23937)
at checkAndUpdateView (core.js:23312)
at callViewAction (core.js:23548)
at execComponentViewsAction (core.js:23490)
at checkAndUpdateView (core.js:23313)
at callViewAction (core.js:23548)
at execComponentViewsAction (core.js:23490)
at checkAndUpdateView (core.js:23313)
at callWithDebugContext (core.js:24177)
Object from API
[
{
ds_Imagem: "http://gtw4.ska.com.br/desk_target_magnus/Files/bannertarget-06.png",
ds_titulo: null
},
{
ds_Imagem: "http://gtw4.ska.com.br/desk_target_magnus/Files/Unimed-Banner.png",
ds_titulo: null
},
{
ds_Imagem: "http://gtw4.ska.com.br/desk_target_magnus/Files/setembro-amarelo_2019092603245511.png",
ds_titulo: null
}
]
Banner Service
@Injectable({
providedIn: 'root'
})
export class BannerService {
private readonly api = 'http://gtw4.ska.com.br:5007/Banner';
constructor(private http: HttpClient) {
}
list() {
return this.http.get<Banner[]>(this.api)
.pipe(
tap(console.log)
);
}
}
banner.component.ts
export class SLIDERComponent implements OnInit {
banner: Banner[] = [];
//banner$: Observable<Banner[]>;
constructor(private service: BannerService) {
}
ngOnInit() {
// this.banner = this.service.list();
this.service.list()
.subscribe(dados => this.banner = dados);
}
}