Ich habe ein Objekt 'visit', das mehrere Eigenschaften hat (z. B. visit1 = {id: 1, clientId: "0001", startTime: 1234567890, finishTime: 1234567899}). Die Besuche werden im Array 'shifts' gespeichert, das aussieht wie shifts = [{id: 1, visits: [visit1, ...]}, ...].Aurelia bindet ein Objekt in einem benutzerdefinierten Element
Um die Daten in der Ansicht angezeigt werden, verwende ich repeat.for:
<div repeat.for="shift of shifts">
<ul>
<li repeat.for="visit of shift.visits">
<visit-item visit.bind="visit" settings.bind="userSettings" selectors="selectors"></visit-item>
</li>
</ul>
</div>
‚besucht Punkt‘ ein benutzerdefiniertes Element ist die editierbare Form für einen einzigen Besuch anzuzeigen. Sein Blick ist:
<template>
<require from="./timepicker"></require>
<require from="../../converters/hour-format"></require>
<form class="form-horizontal" role="form">
<div class="col-xs-12 col-md-3 col-lg-3">
<label>start</label><input timepicker class="form-control input-sm" id="startTime_${visit.id}" type="text" value.bind="visit.startTime | hourFormat">
</div>
<div class="col-xs-12 col-md-3 col-lg-3">
<label>finish</label><input timepicker class="form-control input-sm" id="finishTime_${visit.id}" type="text" value.bind="visit.finishTime | hourFormat">
</div>
<div class="col-xs-12 col-md-3 col-lg-3">
<label>client</label><select class="form-control input-sm" id="client_${visit.id}" value.bind="visit.clientId">
<option repeat.for="option of selectors.client" model.bind="option.value" disabled.bind="option.disabled">${option.name}</option>
</select>
</div>
</form>
</template>
Der Blick-Modell des Besuches-Artikel:
import {bindable, bindingMode} from 'aurelia-framework';
export class VisitItemCustomElement {
@bindable({ defaultBindingMode: bindingMode.twoWay }) visit;
@bindable selectors;
constructor() {
}
bind() {
}
visitChanged(newValue, oldValue) {
console.log("visit changed");
}
}
ich versuchen, Änderungen in der Form eines Besuchs von visitChanged() -Methode zu fangen, aber besuchen Punkt des view- Modell ruft diese Methode nicht auf, wenn ich Werte im Formular ändere. Das selbe, wenn ich valueChanged() mache. Gibt es eine Möglichkeit, Änderungen im Formular mit dem beschriebenen Datenentwurf zu erfassen?