Angularjs jquery插件不断添加dom元素

时间:2014-05-20 00:01:25

标签: javascript jquery angularjs

我在角度指令中使用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

谢谢!

0 个答案:

没有答案