【发布时间】:2013-09-12 15:42:16
【问题描述】:
我想做以下事情:
我的控制器模型中有一个日期对象,我想让用户修改它。 应该给用户两个输入字段。 第一个输入字段应该修改日期,另一个是时间。 两个输入字段应该在相同的日期模型上工作。
<input ng-model="model.date" date-format="YYYY-MM-DD">
<input ng-model="model.date" date-format="HH:mm:SS">
我没有找到有关此绑定的文献。 通常,ng-model 指令负责输入字段的值。 现在我想用我自己的格式覆盖这个值。 此外,如果用户更改了输入,则应解析更改并将其放回日期对象中。
由于 vanilla js 中的日期操作有点奇怪,我使用 moment.js 来格式化和解析日期和字符串。
我目前的做法是这样的:
app.directive('dateFormat', function() {
return {
restrict: 'A',
link: function(scope, el, at) {
var format = at.dateFormat;
scope.$watch(at.ngModel, function(date) {
var result = moment(date).format(format);
el.val(result);
});
}
};
});
但是,一旦我想更改浏览器中的输入值,它就会中断。 我得到了一些 NaN:NaN...
我的问题是:
- 如何建模?
- 这种方法对角度哲学有效还是我在这里做了一些奇怪的事情?
- 我可以同时使用 ng-model 和我的 date-format 指令吗?
- 有更简单的方法吗?
【问题讨论】:
-
那么,你有没有找到一个好的解决方案? :) 我处于类似的位置,我想将模型属性保留为
Date对象,但仍允许用户在应用了日期掩码的编辑字段中对其进行编辑。
标签: javascript angularjs