我正在尝试发出从我的Model.ts文件生成的名为name
的数组的Model[]
属性。当我尝试将其用于我的app.component时,它说属性'名称'在类型Model[]
上不存在。这很奇怪,因为我的模型中存在name:string
属性。也许我认为错了,还有另一个错误可以帮助我解决这个问题,究竟是什么错误?
Model.ts
export class Model
{
name:string;
constructor(name:string)
{
this.name=name;
}
}
favorite.component.ts
export class FavoriteComponent implements OnInit {
items:Model[]= [new Model('Page-1'),new Model('Page-2'),new Model('Page-3')];
@Output() myArray = new EventEmitter<Model>();
//@Output() featureSelected=new EventEmitter<string>();
constructor() { }
onSelect()
{
// console.log(feature);
this.myArray.emit(this.items.name); //mistake is here on this parameter.
}
ngOnInit() {
}
}
favorite.component.html
<nav class="navbar navbar-inverse navbar-fixed-top">
<div class="container-fluid">
<div class="navbar-header">
<a class="navbar-brand" href="#">WebSiteName</a>
</div>
<ul class="nav navbar-nav">
<li class="active"><a href="#">Home</a></li>
<li *ngFor="let item of items">
<a href="#" (click)="onSelect('[item.name]')">{{item.name}}</a>
</li>
</ul>
</div>
</nav>
答案 0 :(得分:1)
在您的html中,将该项目传递给onSelect方法。
<li *ngFor="let item of items">
<a href="#" (click)="onSelect(item)">{{item.name}}</a>
</li>
在您的component.ts中:
onSelect(modelItemSelected: Model)
{
this.myArray.emit(modelItemSelected); //mistake is here on this parameter.
}
表达您的想法:
它说属性'name'在Model []类型上不存在
是的,您的属性“名称” 存在于 Model 类型上,但不存在于 Model [] 类型上模型的数组。
答案 1 :(得分:0)
不确定代码的其余部分,但需要数组索引。
spark.read.option
<nav class="navbar navbar-inverse navbar-fixed-top">
<div class="container-fluid">
<div class="navbar-header">
<a class="navbar-brand" href="#">WebSiteName</a>
</div>
<ul class="nav navbar-nav">
<li class="active"><a href="#">Home</a></li>
<li *ngFor="let item of items;let i=index">
<a href="#" (click)="onSelect(i)">{{item.name}}</a>
</li>
</ul>
</div>
</nav>
答案 2 :(得分:0)
请牢记这两点
您必须在数组中找到特定项。我已经将其硬编码为索引[0],但是您可以根据使用情况选择任何索引。
export class FavoriteComponent implements OnInit {
items: Model[] = [
new Model('Page-1'),
new Model('Page-2'),
new Model('Page-3')
];
@Output() myArray = new EventEmitter<Model>();
@Output() selectedmodelname = new EventEmitter<string>();
constructor() { }
onSelect() {
this.myArray.emit(this.items[0]);
this.selectedmodelname.emit(this.items[0].name);
}
ngOnInit() {
}
我希望它会有所帮助。