【发布时间】:2020-02-17 10:47:24
【问题描述】:
我为这个错误快疯了:
Object literal may only specify known properties, and 'brand' does not exist in type 'BrandCB[]'.
我不知道发生了什么。如何解决这个问题? 这是代码: gallery.component.ts
import { CarsService } from '../services/cars.service';
import { Car } from './../models/car';
import { Component, OnInit } from '@angular/core';
import { BrandCB } from '../models/brandCB';
@Component({
selector: 'app-gallery',
templateUrl: './gallery.component.html',
styleUrls: ['./gallery.component.css']
})
export class GalleryComponent implements OnInit {
cars:Car[];
brands:BrandCB[];
selectedBrand:string;
observableCars;
observableBrands;
constructor(public carsService: CarsService) {
}
ngOnInit() {
this.getCars('all');
this.observableBrands = this.carsService.getBrands().subscribe( (data:any) => {
this.brands = {brand:data['brand'], checked:'false'}; //this is the error row
console.table(data);
});
}
onOptionsSelected(event: { target: { filter: any; }; }){
this.getCars(this.selectedBrand)
}
getCars(filter){
this.observableCars = this.carsService.getCars().subscribe(data => {
if(filter!="all"){
this.cars = data.filter( car => car.brand == this.selectedBrand);
}else{
this.cars = data;
}
});
}
a(event){
let name = event.target.name;
let checked = event.target.checked;
if(name=='all'){
if(checked==true){
//uncheck tutti gli altri
}
} else {
// filtra in base alle caselle checked
// crea un array di checked items
}
}
ngOnDestroy(){
this.observableCars.unsubscribe();
this.observableBrands.unsubscribe();
}
}
brandCB.ts
export class BrandCB {
brand:any;
checked:boolean;
}
StackOverflow 告诉我,我的帖子主要是代码,我应该写点别的,所以我在做,bla bla bla 和更多 bla bla bla。你看到外面的事故了吗?
【问题讨论】:
-
错误发生在哪一行。这真的是您可以创建以重现您的问题的最小代码吗?
-
我是cmets签的,看ngOnInit
-
您正在将一个对象分配给一个数组。
-
您已将品牌定义为一个数组。如果您希望数组中的第一个值等于该对象,请尝试
this.brands[0] = {brand:data['brand'], checked:'false'};。或者更有可能遍历您的数据并根据需要将对象推送到数组中。 -
@ritaj 我认为这不是问题,brands[] 是一个对象数组
标签: angular typescript