Ich habe Probleme, den richtigen Weg zu finden, um einen Wert in meiner Slidebar zu binden, der herausgleitet.Aurelia Binding to slide bar
event.html:
<template>
<require from="./sidebar/event-builder-sidebar"></require>
<require from="./event-item"></require>
<div class="flex-row">
<aside class="event-builder-settings-panel">
<!-- need to bind the single clicked task back to this -->
<event-builder-sidebar containerless data.two-way="?"></event-builder-sidebar>
</aside>
<div class="content-panel">
<div class="eb-actions-row row-flip">
<div class="action-row-buttons">
<button type="button" class="btn btn-sm btn-default"><i class="icon-ion-ios-book"></i> Task Library</button>
<button type="button" class="btn btn-sm btn-default"><i class="icon-ion-plus"></i> Add Task</button>
</div>
</div>
<section class="outer-content outer-content-spacing">
<div class="inner-content-div inner-content-padding">
<ul class="eb event-list">
<!-- Loop happens here -->
<li class="event-item eb-item-created" repeat.for="t of tasks">
<event-item containerless data.two-way="t"></event-item>
</li>
</ul>
</div>
</section>
</div>
</div>
</template>
Sie sehen, wo Ereignis-Element geschlungen wird. Es erzeugt mehrere Karten und wenn ein Benutzer auf diese Karten klickt, erhält er eine Gleitleiste (event-builder-slidebar
), die sich von links einschiebt und dem Benutzer erlaubt, Informationen auf der Karte zu bearbeiten. Ich bin momentan ratlos für die richtige Vorgehensweise. Ich schätze, ich würde das Ereignis benötigen, das die Slidebar auslöst, um das aktuelle Datenobjekt wieder an die übergeordnete event.html
und an die event-builder-slidebar
übergeben. Da bin ich ratlos, um herauszufinden, wie es geht.
import { bindable, bindingMode } from 'aurelia-framework';
import { CssHelper } from '../../../shared/css-helper';
export class EventItem {
@bindable({ defaultBindingMode: bindingMode.twoWay }) data;
static inject() {
return [CssHelper];
}
constructor(cssHelper) {
this.cssHelper = cssHelper;
this.toggleEdit = e => { this.edit(e); };
}
attached() {
document.addEventListener('click', this.toggleEdit);
}
edit(e) {
// this needs to pass this.data back to event builder sidebar somehow
}
}