Angular 中的模板错误
Template error in Angular
我正在尝试创建一个元素列表。这是我的 html 模板:
<div *ngFor="let item of items | async">
<item-detail [item]='item'></item-detail>
</div>
<button (click)='deleteItems()'>Delete Entire List</button>
所以,我只是想遍历列表。不幸的是我得到这个:
Error: Template parse errors:
Can't bind to 'item' since it isn't a known property of 'item-detail'.
这是我的 item-list.component.ts
。
import {Component, OnInit} from '@angular/core';
import {FirebaseListObservable, FirebaseObjectObservable, AngularFireDatabase} from 'angularfire2/database-deprecated';
import {Item} from '../shared/item';
import {ItemService} from '../shared/item.service';
@Component({
selector: 'app-items-list',
templateUrl: './items-list.component.html',
styleUrls: ['./items-list.component.scss']
})
export class ItemsListComponent implements OnInit {
public items: FirebaseListObservable<Item[]>;
constructor(private itemSvc: ItemService) {
}
ngOnInit() {
this.items = this.itemSvc.getItemsList({limitToLast: 5});
}
}
我正在学习本教程:https://angularfirebase.com/lessons/reactive-crud-app-with-angular-and-firebase-tutorial/
item-details.component.ts
文件
import {Component, OnInit} from '@angular/core';
import {Input} from '@angular/core';
import {Item} from '../shared/item';
import {ItemService} from '../shared/item.service';
@Component({
selector: 'app-item-detail',
templateUrl: './item-detail.component.html',
styleUrls: ['./item-detail.component.scss']
})
export class ItemDetailComponent {
@Input() item: Item;
constructor(private itemSvc: ItemService) {
}
updateTimeStamp() {
this.itemSvc.updateItem(this.item.firebaseKey, {});
}
updateActive(value: boolean) {
this.itemSvc.updateItem(this.item.firebaseKey, {});
}
}
跟进错误:
Can't bind to 'item' since it isn't a known property of 'app-items-list'.
新代码:
<div *ngFor="let item of items | async">
<app-items-list [item]='item'></app-items-list>
</div>
问题是你的 item-detail
组件的选择器被定义为 'app-item-detail'
,这意味着 Angular 正在你的 [=22] 中寻找 <app-item-detail>
标签=].
但是,你用过<item-detail [item]='item'></item-detail>
,angular不知道item-detail
是什么。改成<app-item-detail [item]='item'></app-item-detail>
就可以了
<div *ngFor="let item of items | async">
<app-item-detail [item]='item'></app-item-detail>
</div>
我正在尝试创建一个元素列表。这是我的 html 模板:
<div *ngFor="let item of items | async">
<item-detail [item]='item'></item-detail>
</div>
<button (click)='deleteItems()'>Delete Entire List</button>
所以,我只是想遍历列表。不幸的是我得到这个:
Error: Template parse errors:
Can't bind to 'item' since it isn't a known property of 'item-detail'.
这是我的 item-list.component.ts
。
import {Component, OnInit} from '@angular/core';
import {FirebaseListObservable, FirebaseObjectObservable, AngularFireDatabase} from 'angularfire2/database-deprecated';
import {Item} from '../shared/item';
import {ItemService} from '../shared/item.service';
@Component({
selector: 'app-items-list',
templateUrl: './items-list.component.html',
styleUrls: ['./items-list.component.scss']
})
export class ItemsListComponent implements OnInit {
public items: FirebaseListObservable<Item[]>;
constructor(private itemSvc: ItemService) {
}
ngOnInit() {
this.items = this.itemSvc.getItemsList({limitToLast: 5});
}
}
我正在学习本教程:https://angularfirebase.com/lessons/reactive-crud-app-with-angular-and-firebase-tutorial/
item-details.component.ts
文件
import {Component, OnInit} from '@angular/core';
import {Input} from '@angular/core';
import {Item} from '../shared/item';
import {ItemService} from '../shared/item.service';
@Component({
selector: 'app-item-detail',
templateUrl: './item-detail.component.html',
styleUrls: ['./item-detail.component.scss']
})
export class ItemDetailComponent {
@Input() item: Item;
constructor(private itemSvc: ItemService) {
}
updateTimeStamp() {
this.itemSvc.updateItem(this.item.firebaseKey, {});
}
updateActive(value: boolean) {
this.itemSvc.updateItem(this.item.firebaseKey, {});
}
}
跟进错误:
Can't bind to 'item' since it isn't a known property of 'app-items-list'.
新代码:
<div *ngFor="let item of items | async">
<app-items-list [item]='item'></app-items-list>
</div>
问题是你的 item-detail
组件的选择器被定义为 'app-item-detail'
,这意味着 Angular 正在你的 [=22] 中寻找 <app-item-detail>
标签=].
但是,你用过<item-detail [item]='item'></item-detail>
,angular不知道item-detail
是什么。改成<app-item-detail [item]='item'></app-item-detail>
就可以了
<div *ngFor="let item of items | async">
<app-item-detail [item]='item'></app-item-detail>
</div>