【发布时间】:2014-03-03 17:06:22
【问题描述】:
我在 Angular 应用程序中使用 JQuery 引导日期选择器 (eternicode.github.io/bootstrap-datepicker/)。
我已经编写了自己的指令来包装这个日期选择器并进行一些日期格式设置。 Datepicker 工作正常并显示适当的日期格式。
目前,我想显示一个格式化的日期值,并将一个时间戳格式化的值放入 ngModel。
当我不尝试在指令中使用模板时,我的代码还可以:
cosyApp.directive("datepicker", ['moment',
function(moment) {
function link($scope, element, attrs, ctrl) {
// Init JQuery datepicker
element.datepicker();
ctrl.$parsers.push(function(valueFromInput) {
// Format displayed value in timestamp format
return moment(valueFromInput).format('X');
});
}
return {
restrict: 'A',
require: 'ngModel',
link: link
};
}
]);
但是当我使用模板属性时,ngModel和显示的值是一样的:
return {
restrict: 'A',
replace: true,
require: 'ngModel',
template: "<div class='input-group date'> {{ngModel}}" +
"<input class='form-control' ng-model='ngModel'>" +
"<span class='input-group-addon'><i class='glyphicon glyphicon-calendar'></i></span>" +
"</div>",
link: link
};
【问题讨论】:
-
你能做一个JSFiddle或Plunker吗?
-
这里的代码更清晰:http://plnkr.co/edit/9fojEhcxoBEbUkrtGGnQ?p=preview 请注意,Plunker 会在这个 Plunker 中自动显示打开的日期选择器,我不知道为什么...
-
我做了一些更改。我没有试图弄清楚为什么日历会立即显示,而是将日期选择器绑定到输入字段。这是你要找的吗? plnkr.co/edit/5213zUvnqyv0ARqc11aU?p=preview
-
是的,没关系!你让我开心,谢谢!你能发布你的答案吗?我会为此投票。
标签: angularjs parsing templates datepicker directive