基本的な 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
に、フォーム フィールドに追加すると、今日の日付が設定されなくなります。