2016-02-18 21 views
5

Sto riscontrando qualche problema nel passare gli attributi in un componente personalizzato. Ho provato dichiarando la mia componente dei seguenti modi:Passaggio di attributi personalizzati in Aurelia Component

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

Quando l'avviso viene chiamato, non definito è il valore che ricevo da esso. Inoltre, è richiesto il decoratore customElement?

risposta

6

Invece di usare camelCase per i propri attributi, prova dash-case.

Prova questa:

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

Secondo convenzioni Aurelia, attributi dash-case'd verranno convertiti in variabili camelCase nel vostro ViewModel, così il vostro VM è già bene.

+0

Questo l'ha fatto! Dove è documentata quella convenzione? –

+0

Mi dispiace. Io davvero se questa convenzione è stata descritta in alcune delle pagine dei documenti, ma sembra che non lo sia. Devo aver letto in qualche blog che non riesco a trovare ormai. –

+1

Penso che sia un blog. Ricordo di averlo visto anche un po 'di tempo fa. Aurelia è ancora al punto che stai raccogliendo la documentazione da ovunque tu possa trovarla. :) È piuttosto divertente da usare però. Grazie per l'aiuto! –

Problemi correlati