Попытка узнать Aurelia 1.0, и я не могу получить двустороннюю привязку к настраиваемому элементу для работы.Aurelia двусторонняя привязка в пользовательском элементе не работает
Используя самозагрузки-DatePicker Я сделал дата-диапазона выбора пользовательского элемента:
дата-диапазона picker.js
import {bindable, bindingMode, inject} from 'aurelia-framework';
import $ from 'jquery';
import datepicker from 'bootstrap-datepicker';
@inject(Element)
export class DateRangePicker {
@bindable startName = 'start';
@bindable endName = 'end';
@bindable startValue = null;
@bindable endValue = null;
constructor(element) {
this.element = element;
}
attached() {
$(this.element).find('.input-daterange').datepicker();
}
}
дата-диапазона picker.html
<template>
<div class="input-daterange input-group" id="datepicker">
<input type="text" class="input-sm form-control"
name="${startName}" id="${startName}"
value.two-way="startValue"
placeholder="Start Date (mm/dd/yyy)" />
<span class="input-group-addon">to</span>
<input type="text" class="input-sm form-control"
name="${endName}" id="${endName}"
value.two-way="endValue"
placeholder="End Date (mm/dd/yyy)"/>
</div>
</template>
пользовательский элемент используется в свинцах.html:
<div class="col-sm-12">
<form role="form" class="form-inline" submit.delegate="search()">
<div class="form-group">
<date-range-picker
start-name="createdAtStartDate" start-value.two-way="startDate"
end-name="createdAtEndDate" end-value.two-way="endDate">
</date-range-picker>
</div>
<button type="submit" class="btn btn-primary">Search</button>
</form>
</div>
leads.js
import {inject} from 'aurelia-framework';
import {LeadsService} from './leads-service';
import moment from 'moment';
@inject(LeadsService)
export class Leads {
startDate = moment().format('M/D/YYYY');
endDate = moment().format('M/D/YYYY');
leads = [];
constructor(dataService) {
this.dataService = dataService;
}
search() {
this.dataService.getLeads({
startDate: this.startDate,
endDate: this.endDate
})
.then(leads => this.leads = leads);
}
}
дата-диапазона Picker работает, как ожидалось, и любое значение устанавливается в STARTDATE и ENDDATE в leads.js правильно связан с полей ввода в пользовательском элементе, но, когда я представляю Форма startDate и endDate не изменяется, даже если я изменяю значения полей ввода.
Любые идеи, что я делаю неправильно?
я на самом деле пытался, что первый, но я все еще получаю такой же результат. Я изменил startValue и endValue, чтобы указать defaultBindingMode, как вы заявили, но все еще не работает. Я пробовал не использовать пользовательский элемент и просто использовать текстовые поля ввода и двустороннюю привязку. Кажется, что он не работает с пользовательскими элементами. – Gino
Я не уверен, будет ли это иметь какое-либо значение, но попробуйте удалить «= null» из объявления bindable. '@bindable ({defaultBindingMode: bindingMode.twoWay}) startValue; // no = null здесь –
К сожалению, даже после удаления «= null» двусторонняя привязка все еще не работает. '@bindable ({defaultBindingMode: bindingMode.twoWay}) startValue;' – Gino