我們正在使用引導程序datepicker
來滿足我們的項目需求。我們需要做的是每當用戶選擇今天的日期時,日期必須在文本框中顯示「(TODAY)」,如「2008年5月12日(TODAY)」。自定義引導程序angularjs datepicker
這裏最好的辦法是什麼?因爲我們在多個地方使用這個datepicker
,所以我認爲有一個像創建一個指令一般的方法會有幫助。正試圖將更改事件與datepickerPopup
指令綁定,但尚未能使其工作。
這裏是我到目前爲止已經試過:
已經創建了一個裝飾。這似乎工作。但是,有一個問題,我如何訪問這個裝飾器中的父指令方法(如dateFilter,parseDate在這裏)? (對不起,如果你發現我的問題太天真了,因爲我對angularjs很陌生)。我附上了代碼。
app.config(function($provide) {
$provide.decorator('datepickerPopupDirective', function($delegate) {
var directive = $delegate[0],
link = directive.link;
//closeOnDateSelection = angular.isDefined(attrs.closeOnDateSelection) ? scope.$parent.$eval(attrs.closeOnDateSelection) : datepickerPopupConfig.closeOnDateSelection,
//angular.extend(directive.scope, { 'monthChanged': '&' });
directive.compile = function() {
return function(scope, element, attrs, ngModel) {
link.apply(this, arguments);
ngModel.$render = function() {
var date = ngModel.$viewValue ? dateFilter.apply(ngModel.$viewValue, dateFormat) : '';
var currentDate = new Date();
currentDate.setHours(0,0,0,0);
if(date.getTime() == currentDate.getTime()){
element.val(date + "(TODAY)");
}else{
ngModel.$setViewValue(scope.date);
}
scope.date = parseDate(ngModel.$modelValue);
};
};
};
return $delegate;
});
});
你能證明你試過了嗎? – rapvelopment
@rozkosz。已添加裝飾者代碼。面臨我評論中提到的另一個問題。如果你能幫忙。謝謝 –