Javascript aurelia自定义元素日期-更新时漂亮的日期选择器更新值
我已经创建了一个自定义元素(date.html/date.js)。如果我在编辑页面上使用它,这将非常有效。它已经绑定了对象(selected value=''),然后它从db返回一个db对象(我的编辑数据),此时我需要重新绑定所选的值 我在创建的另一个自定义元素(下拉列表)中遇到了这个问题,我通过添加“selectedchange”解决了这个问题,然后在它被添加到数据库后重新绑定 我的问题是,我已经尝试了selectedChanged并添加了一个调试器(它从未命中),我认为这是因为我应该使用其他东西,但我不知道是什么Javascript aurelia自定义元素日期-更新时漂亮的日期选择器更新值,javascript,aurelia,bootstrap-datepicker,Javascript,Aurelia,Bootstrap Datepicker,我已经创建了一个自定义元素(date.html/date.js)。如果我在编辑页面上使用它,这将非常有效。它已经绑定了对象(selected value=''),然后它从db返回一个db对象(我的编辑数据),此时我需要重新绑定所选的值 我在创建的另一个自定义元素(下拉列表)中遇到了这个问题,我通过添加“selectedchange”解决了这个问题,然后在它被添加到数据库后重新绑定 我的问题是,我已经尝试了selectedChanged并添加了一个调试器(它从未命中),我认为这是因为我应该使用其他
selectedChanged(){
// if chosen item isnt = selected then set it
var currentSelected = $('select', this.element).find(':selected').val();
if(currentSelected != this.selected) {
$('select', this.element).val(this.selected);
$('select', this.element).trigger("chosen:updated");
}
}
date.js
import {customElement, bindable, inject, bindingMode} from 'aurelia-framework';
import {activationStrategy} from 'aurelia-router';
import $ from 'jquery';
@customElement('date')
@bindable({name: 'value', attribute: 'value', defaultValue: '', defaultBindingMode: bindingMode.twoWay})
@inject(Element)
export class Date {
constructor(element) {
this.element = element;
this.pickerDate = '';
}
bind(){
var options = {
autoclose: true,
format: 'dd/mm/yyyy',
};
$('.input-group.date', this.element).datepicker(options).datepicker('update', this.value);
$('.input-group.date', this.element).on('changeDate', (event) => {
this.value = $('.input-group.date', this.element).datepicker('getUTCDate');
});
}
}
**date.html**
<template>
<div class="input-group date">
<input type="text" class="form-control" disabled.bind="readonly" />
<span class="input-group-addon"><i class="fa fa-calendar fa-lg"></i></span>
</div>
</template>
import{customElement,bindable,inject,bindingMode}来自'aurelia framework';
从“aurelia路由器”导入{activationStrategy};
从“jquery”导入美元;
@customElement('日期')
@可绑定({name:'value',attribute:'value',defaultValue:'',defaultBindingMode:bindingMode.twoWay})
@注入(元素)
出口类别日期{
构造函数(元素){
this.element=元素;
this.pickerDate='';
}
绑定(){
变量选项={
自动关闭:是的,
格式:“dd/mm/yyyy”,
};
$('.input group.date',this.element).datepicker(选项).datepicker('update',this.value));
$('.input group.date',this.element).on('changeDate',(事件)=>{
this.value=$('.input group.date',this.element).datepicker('getUTCDate');
});
}
}
**date.html**
我不是真正的前端js等,所以不知道它期望什么调用?请注意,我的@bindable对象(用于日期输入框)是调用'value',因此在构造函数下我添加了'valueChanged() 完整代码:
import {customElement, bindable, inject, bindingMode} from 'aurelia-framework';
import {activationStrategy} from 'aurelia-router';
@customElement('date')
@bindable({name: 'value', attribute: 'value', defaultValue: '', defaultBindingMode: bindingMode.twoWay})
@inject(Element)
export class Date {
constructor(element) {
this.element = element;
this.pickerDate = '';
}
valueChanged() {
var currentvalue = $('.input-group.date', this.element).val();
if (currentvalue !== this.selected) {
$('.input-group.date', this.element).datepicker('update', this.value);
}
}
bind(){
var options = {
autoclose: true,
format: 'dd/mm/yyyy',
};
$('.input-group.date', this.element).datepicker(options).datepicker('update', this.value);
$('.input-group.date', this.element).on('changeDate', (event) => {
this.value = $('.input-group.date', this.element).datepicker('getUTCDate');
});
}
}
我真的不明白你的问题。。。什么不起作用?我的日期输入区域在它向数据库进行调用后没有重新呈现,这意味着当页面加载(编辑时)时,它的空白我同意@MathieuLeblanc,问题是模糊的。请将其更改为更具体的问题,而不仅仅是一堆相关和不相关的代码。