2016-02-18 12 views
5

Mam problemy z przekazywaniem atrybutów do komponentu użytkownika. Próbowałem deklarowania mój komponent następujących sposobów:Przekazywanie atrybutów niestandardowych do składnika Aurelia Komponent

<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); 
    } 
} 

Gdy alarm jest nazywany, jest niezdefiniowana wartość dostaję od niego. Czy potrzebny jest również dekorator customElement?

Odpowiedz

6

Zamiast używać camelCase dla swoich atrybutów, wypróbuj dash-case.

Spróbuj tego:

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

Według konwencji Aurelia, kreska-case'd atrybuty zostaną zamienione na zmienne CamelCase w ViewModel, więc VM jest już w porządku.

+0

To się udało! Gdzie jest udokumentowana ta konwencja? –

+0

Przykro mi. Naprawdę, chociaż ta konwencja została opisana na niektórych stronach dokumentów, ale wygląda na to, że tak nie jest. Musiałem przeczytać na blogu, którego nie mogę znaleźć. –

+1

Myślę, że to blog. Pamiętam, że widziałem to równie dobrze jakiś czas temu. Aurelia jest wciąż w punkcie, w którym składasz dokumentację z dowolnego miejsca, w którym możesz ją znaleźć. :) Całkiem fajnie jest jednak z tego korzystać. Dzięki za pomoc! –

Powiązane problemy