Je pensais que j'essayais de faire quelque chose de très simple, mais je ne peux tout simplement pas faire ce travail. Tout cet exemple est sur plunkrLiaison bidirectionnelle entre élément parent et élément personnalisé enfant dans Aurelia
J'ai un élément personnalisé très basique qui présente un membre de données @bindable
qu'il affiche et surveille avec un événement modifié. Il ressemble à ceci:
import {bindable} from "aurelia-framework";
export class ChildElementCustomElement {
@bindable childData;
childDataChanged(value) {
alert("Child Data changed " + value);
}
}
et la vue:
<template>
<div style="border: solid 1pt green;">
<h2>This is the child</h2>
This is the child data : ${childData}
</div>
</template>
Le parent montre l'élément enfant, mais je veux un membre dans son modèle de vue qui est lié à l'enfant de sorte que tout changement dans le membre parent est automatiquement reflété dans l'enfant. Voici le code parent:
import {bindable} from "aurelia-framework";
export class App {
parentData = "this is parent data";
}
et la vue:
<template>
<h1>Two-way binding between parent and child custom elements</h1>
<require from="./child-element"></require>
<child-element childData.bind="parentData"></child-element>
<hr/>
<label>The following is the parent data:</label>
<input type="text" value.bind="parentData"></input>
</template>
Ce que je voudrais voir est des mises à jour tapées dans le champ de saisie apparaît automatiquement dans l'enfant (plus l'événement se déclenche changé) mais l'enfant ne semble pas lié du tout! J'ai également essayé d'échanger bind
pour two-way
juste au cas où la convention a lié one-way
mais cela n'a toujours pas fonctionné. S'il vous plaît mettre en évidence ma stupidité :) parce que je suis actuellement coincé en pensant que cela devrait fonctionner.
Ok, maintenant je me sens stupide! Je connaissais l'existence du dash-case mais je ne l'avais pas essayé dans ce contexte (facepalm). @ nemesv - merci :) – Phil
Puis-je ajouter que les docs ne le mettent pas beaucoup en évidence. Merci d'avoir répondu! –
le lien pour la documentation est cassé pouvez-vous mettre à jour pls –