2017-09-13 97 views
0

我正在嘗試編寫一個指令,該指令將默認日期設置爲某個datePicker。無法從指令中獲取自定義屬性

只要我寫了我的情況是這樣的:

<input type="text" class="form-control" telme="insSupplies[$index].start_date" ng-model="insSupplies[$index].start_date" beat-date> 

正如你所看到的,我有一些HTML與telme自定義屬性,它包含必須在日期選擇器

可見的defult日期

這裏是我的指令:

.directive('beatDate', function (DISPATCHER_BROADCAST) { 
     return { 
      restrict: 'A', 
      require: "ngModel", 
      link : function(scope, elem, attrs,ngModelCtrl) { 
       scope.$on(DISPATCHER_BROADCAST.beatStuffLoaded, 
       function(){ 
        var parent = $(elem).parent(); 
        var something = scope.$eval(attrs.telme); 
        var dtp = parent.datetimepicker({ 
         format: "DD/MM/YYYY HH:mm:ss", 
         showTodayButton: false, 
         defaultDate: something.toDate() 
        }); 
        dtp.on("dp.change", function (e) { 
         ngModelCtrl.$setViewValue(moment(e.date).format("DD/MM/YYYY HH:mm:ss")); 
         scope.$apply(); 
        }); 
       } 
      );   
      } 
     }; 
     }) 

這裏的問題是,我不能夠訪問ATTR telme以任何方式。

任何提示?

+0

如果您嘗試訪問'telme'但是超出範圍,會發生什麼?$ on(...)'? – JeanJacques

回答

0

你有沒有試過做一個「console.log(attrs)」,這樣你就可以看到哪些屬性真的有你的元素?

+0

是的,它沒有我的任何自定義屬性 – Anon

+1

好吧,讓我們來做一件事。嘗試在「$ scope.on」行之前將「attrs」存儲到某個變量中(例如,「var myAttributes = attrs」)。然後做「myAttributes」的「console.log」。我認爲,當「beatStuffLoaded」事件被解僱時,你將失去「attrs」的價值,因此存儲它應該能夠做到這一點。 – Atap23

相關問題