aurelia自定义元素date-nifty日期选择器在更新时更新值
aurelia custom element date - nifty datepicker update value on update
我创建了一个自定义元素(date.html/date.js)。如果我在编辑页面上使用它,这将非常有效。它已经绑定了对象(选定的值="),然后它从数据库返回一个数据库对象(我的编辑数据),此时我需要重新绑定选定的值。
我创建的另一个自定义元素(下拉列表)出现了这个问题,我通过添加"selectedChanged"来解决这个问题,然后在它进入数据库后重新绑定。
我的问题是,我已经尝试了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>
我不是真正的前端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');
});
}
}
相关文章:
- 通过Ember颜色选择器更新SCSS变量
- 正在更新起始日期角度日期范围选择器中的日期选择
- 在日期更改后更新Angular UI引导程序日期选择器选项
- 获取 HTML 5 音频控制文件位置并在不使用 id 选择器的情况下更新 src
- 如何在jQuery的.on()方法中动态更新按钮的ID选择器
- 在更新选择器中使用$in时颠倒多个文档
- jQuery日期选择器在Firefox和IE的MVC部分视图上进行ajax更新后无法工作
- 手动更新引导程序颜色选择器
- Bootstrap日期选择器中的更新不起作用
- 在 IE11 中添加子项时未更新空选择器的解决方法
- 如何让 jquery 选择器在更改处理程序中看到更新的 dom
- 当 DOM 更改时,使用最后一个选择器更新变量
- jQuery + Boostrap DatePicker:如何让两个日期选择器输入相互更新
- 更新的问题::查询选择器可能存在PhantomJS/Javascript问题
- 更新 Twitter 引导程序的日期范围选择器的选定日期
- jQuery 'on' 单击不检查更新的选择器
- 在 Meteor 中使用复杂的更新选择器进行原子操作
- jQuery选择器是快照还是实时更新
- 使用jQuery添加日期范围选择器并更新内容
- 当HTML改变时更新选择器的jQuery设计模式