我在角度指令中使用this jQuery插件(如下所示)。我遇到的问题是它似乎总是重新初始化插件并添加与插件相关的新dom元素,而不是重新使用已有的插件。
这是我的指令:
angular.module('directives').directive('dateSelector', [function () {
'use strict';
return {
link: function ($scope, elm, attrs) {
$scope.query = $scope.query || {};
$scope.query = {
start: moment().subtract('days', 29).format('YYYY-MM-DD')
, end: moment().format('YYYY-MM-DD')
}
elm.find('span').html(moment().subtract('days', 29).format('MMMM D, YYYY') + ' - ' + moment().format('MMMM D, YYYY'));
elm.daterangepicker({
ranges: {
'Today': [moment(), moment()],
'Yesterday': [moment().subtract('days', 1), moment().subtract('days', 1)],
'Last 7 Days': [moment().subtract('days', 6), moment()],
'Last 30 Days': [moment().subtract('days', 29), moment()],
'This Month': [moment().startOf('month'), moment().endOf('month')],
'Last Month': [moment().subtract('month', 1).startOf('month'), moment().subtract('month', 1).endOf('month')]
},
startDate: moment().subtract('days', 29),
endDate: moment()
},
function(start, end) {
elm.find('span').html(start.format('MMMM D, YYYY') + ' - ' + end.format('MMMM D, YYYY'));
$scope.query = {
start: start.format('YYYY-MM-DD')
, end: end.format('YYYY-MM-DD')
}
if (angular.isFunction($scope.dateUpdate)) $scope.dateUpdate(start.format('YYYY-MM-DD'), end.format('YYYY-MM-DD'));
});
}
};
}]);
任何想法如何获得它将重用相同的elm
?
谢谢!