2016-02-18 4 views
5

Ich habe Probleme beim Übergeben von Attributen in eine benutzerdefinierte Komponente. Ich habe meine Komponente folgende Möglichkeiten versucht zu erklären:Übergeben von benutzerdefinierten Attributen in Aurelia-Komponente

<require from="../components/project-documents"></require> 

<project-documents projectId="testing123"></project-documents> 
<project-documents projectId.bind="project.Name"></project-documents> 

import {customElement, bindable} from "aurelia-framework"; 
import {autoinject} from "aurelia-dependency-injection"; 

@customElement("project-documents") 
export class ProjectDocuments { 

    @bindable projectId:string; 

    attached() { 
     alert(this.projectId); 
    } 
} 

Wenn der Alarm genannt wird, nicht definiert der Wert I von ihm zu erhalten ist. Ist der CustomElement-Decorator erforderlich?

Antwort

6

Anstatt camelCase für Ihre Attribute zu verwenden, versuchen Sie das Dash-Case.

Versuchen Sie folgendes:

<project-documents project-id="testing123"></project-documents> 
<project-documents project-id.bind="project.Name"></project-documents> 

Nach aurelia Konventionen werden streichen case'd Attribute camelcase Variablen in Ihrem Ansichtsmodell umgewandelt werden, so dass Ihr VM schon in Ordnung ist.

+0

Das hat es geschafft! Wo ist diese Konvention dokumentiert? –

+0

Es tut mir leid. Ich habe wirklich diese Konvention in einigen der Docs-Seiten beschrieben, aber es scheint, dass es nicht ist. Ich muss in einem Blog gelesen haben, den ich nicht finden kann. –

+1

Ich denke, es ist ein Blog. Ich erinnere mich, dass ich es vor einiger Zeit gesehen habe. Aurelia ist immer noch an dem Punkt, an dem Sie Dokumentationen zusammenstellen, wo immer Sie sie finden können. :) Es macht aber Spaß, es zu benutzen. Danke für Ihre Hilfe! –