我在基本的Angular指令中使用Amsul的Pickadate:
.directive('pickadate', [function() {
return {
restrict: 'A',
require: 'ngModel',
scope: {
options: '=pickadate'
},
link: function(scope, element, attrs, ngModel) {
// Extend the default options with passed ones
var options = angular.extend({
format: 'yyyy-mm-dd'
}, scope.options);
// Set the picker
element.pickadate(options);
// Set the value
scope.$parent.$watch(attrs.ngModel, function(value) {
if (!element.pickadate('picker')) return;
element.pickadate('picker').set('select', value, {format: options.format});
});
}
};
}])
在我的模板中,我有:
<input id="dob" type="text" name="dob" ng-model="data.client.dob" pickadate />
最后,我的控制器只是创建一个空客户端资源
$scope.data.client = new Client();
当页面加载时,我希望字段为空,但是,如果我在指令中记录该值,我得到:
我几乎可以肯定这是一个挑剔的事情,但无法解决为什么今天的日期正在设定。奇怪的是,如果我在表单字段中添加required
,它就不再设置今天的日期。