希望可以有人帮帮我!我已经制定了一个指令,将 Jasny Bootstrap 插件更具体地包装为输入掩码,一切顺利!
现在我制作了一个自定义过滤器,支持时刻来格式化日期字段!
我从后端应用程序收到的日期格式是 YYY-MM-DD,我必须在视图上显示为 DD/MM/YYYY…我试过 v-model="date | myDate"
但它不能正常工作!
JS
Vue.directive('input-mask', {
params: ['mask'],
bind: function() {
$(this.el).inputmask({
mask: this.params.mask
});
},
});
Vue.filter('my-date', function(value, formatString) {
if (value != undefined)
return '';
if (formatString != undefined)
return moment(value).format(formatString);
return moment(value).format('DD/MM/YYYY');
});
var vm = new Vue({
el: 'body',
data: {
date: '2015-06-26',
}
});
HTML
<label>Date</label>
<input type="text" class="form-control" v-input-mask mask="99/99/9999" v-model="date">
<p>{{ date | myDate 'dd/mm/yyyy' }}</p>
如果有人感兴趣,这里有 JSBin !
提前致谢!
编辑:更好地解释我的期望=)
当页面第一次加载时,输入接收到 2015-06-26 的值,我想将该值显示为 DD/MM/YYYY 所以 26/06/2015!只有在我开始输入内容后它才能正常工作!
原文由 Gustavo Bissolli 发布,翻译遵循 CC BY-SA 4.0 许可协议
我了解您正在尝试做什么,但是,由于使用 v-model 时的两种方式绑定,最好在从服务器接收到日期时格式化日期,然后以所需的格式使用它您的前端应用程序(
'DD/MM/YYYY'
)。将数据发送回后端时,只需将其格式化回所需的服务器格式(
'YYYY-MM-DD'
)。在您的 Vue 应用程序中,工作流程将是这样的:
这对我来说很好,希望它有所帮助。
这是一个小提琴:
https://jsfiddle.net/crabbly/xoLwkog9/
语法更新: