带有动态输入控件的jQuery datepicker - "此日期选择器的#cc; Uncaught Missing实例数据"

时间:2016-11-17 12:15:31

标签: jquery angularjs datepicker

创建了一个使用jquery datepicker将输入元素转换为Calendar的指令。输入元素是使用ng-repeat生成的,因此它们具有动态id。

<div ng-repeat="id in ids"><input type="text" id="{{'txtDate' + id}}" ng-model="selectedDate" set-mask /></div>

datepicker将输入元素id注册为角度表达式 - 输入#{{&#39; txtStartDate&#39; + id}}。所以我无法选择日期。它会为此日期选择器&#34;。

抛出&#34; Uncaught Missing实例数据

如果angular评估表达式并设置输入的id,我该如何创建一个日期选择器。

https://plnkr.co/edit/1POi560sAGB4TPl4Ayji

1 个答案:

答案 0 :(得分:1)

您需要在DOM中呈现元素后创建一个日期选择器。

喜欢这个

app.directive("setMask", function($compile, $timeout) {

return {
  restrict: "A",
  link: function(scope, element, attrs) {
    element.mask('99/99/9999');

    $timeout(function() { //Delay init
      element.datepicker({
        changeMonth: true,
        changeYear: true,
        yearRange: '1930:' + (new Date).getFullYear()
      });
    })
   }
  };
});

plunker

上的示例