Ich hatte einen schwierigen Versuch herauszufinden, warum mein Code die Anzahl der Artikel in den Featured Items nicht bekommen konnte, bis ich die Variable von "Eingabe" auf "Suche" in den Featured Items änderte. Unten ist mein vorge-item.component.html:Warum muss der Eingabename beim Teilen der Komponenten unterschiedlich sein?
<rb-featured-item [search]="searchFeaturedItem" [isWhole]="isWhole"
[minMax]="isFeaturedMin">
</rb-featured-item>
<rb-product-list [searchType]="searchType" [subType]="subType"
[input]="searchStr" >
</rb-product-list>
Unten ist mein vorge-item.component.ts:
searchStr: string;
searchType: string;
subType: string;
searchFeaturedItem: string = 'cell phones'; // show all featured items in cell phones..
isFeaturedMin: boolean = true;
isWhole: boolean = true;
ngOnInit() {
this.searchStr = 'cell phones'; // product-list searches for all cell phones in su-category..
this.searchType = 'sub-category';
this.subType = 'none';
window.scrollTo(0, 0);
}
Unten ist mein vorge-items.component (gemeinsam genutzte Komponente). Dies ist, wo mein Code die Anzahl der Elemente nicht erhalten kann, bis ich von 'Suche' zu 'Eingabe' gewechselt habe. Ist es, weil Produktliste hat
<rb-product-list [input]> //and
<rb-featured-item [input]>
warum bekomme ich einen Fehler? Bitte stimmen Sie meine Frage nicht ab, da ich nur meine Entdeckung teile.
//selector: 'rb-featured-item' -- see top
export class FeaturedItemComponent implements OnInit, OnChanges {
@Input ('search') searchStr: string; // ** errors if 'input' instead of 'search'***
@Input('width') mainWidth: number;
@Input ('leftMargin') mainLeftMargin: string;
@Input('isWhole') isWhole: boolean;
@Input('minMax') isMin: boolean;
featuredItems: FeaturedItem[] = [];
isFeatured: boolean;
ich auch in ungerade Verhalten ausgeführt haben für undokumentierte Eingabenamen, die Probleme verursachen. Ich kann mich nicht erinnern, ob es ein Problem bei der Verwendung vorhandener HTML-Attributnamen war oder ob es ein Problem mit der Funktionsweise von Anmerkungen in Typescript war. So wie Sie ein reserviertes Wort nicht als Eingabe oder ähnliches verwenden können. Wäre schön, wenn Angular eine schöne Liste von diesen hätte, um sie im Doc zu vermeiden. – cgTag