2016-09-28 39 views
1

我正在使用eonasdan datetimepicker,我無法設法從Angular控制器訪問數據功能。無法讀取未定義引導的屬性eonasdan datetimepicker

下面的代碼生成「類型錯誤:無法讀取的未定義的屬性‘的setValue’」

var d = new Date(); 
d.setHours(d.getHours() - 8); 
m = moment(d); 
$("#datetimepicker").data("DateTimePicker").setValue(m); 

由於onChange事件在下面的代碼觸發,這個問題是不是在選擇。

$("#datetimepicker").on("dp.change", function (e) { 
     console.log(e.date._d);); 
    }); 

正如我發現了自舉-datetimepicker.js定義的DateTimePicker數據,以及它實現了的setValue功能。

if (!$this.data('DateTimePicker')) { 
       // create a private copy of the defaults object 
       options = $.extend(true, {}, $.fn.datetimepicker.defaults, options); 
       $this.data('DateTimePicker', dateTimePicker($this, options)); 
      } 

setValue = function (targetMoment) 

我做錯了什麼?

回答

0

問題是我在外面調用了$("#datetimepicker").data("DateTimePicker") DOM。

通過實施一個具有隔離作用域的指令來解決,以將Ng模型綁定到datetimepicker。

.directive('timepicker', [ 
    function() { 
     var link; 
     link = function (scope, element, attr, ngModel) { 
      element = $(element); 
      element.datetimepicker({ 
       locale: 'sv', 
       inline: true, 
       sideBySide: true, 
       stepping: 30, 
       defaultDate: scope.date 
      }); 
      element.on('dp.change', function (event) { 
       scope.$apply(function() {      
       scope.date = event.date._d;; 
       }); 
      }); 
     }; 

     return { 
      restrict: 'A', 
      scope: { 
       date: '=ngModel' 
      }, 
      link: link   
     }; 
    } 
    ]) 

正如K.Toress解釋How to set default date in datetimepicker with ngmodel?

相關問題