Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/angularjs/22.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Jquery 引导材料日期选择器不会在ng repeat中弹出_Jquery_Angularjs - Fatal编程技术网

Jquery 引导材料日期选择器不会在ng repeat中弹出

Jquery 引导材料日期选择器不会在ng repeat中弹出,jquery,angularjs,Jquery,Angularjs,我有一个动态创建日期字段的表单,它应该调用MaterialDatePicker(jquery) $('.date1').bootstrapMaterialDatePicker({weekStart:0,time:false}); $.material.init(); 当我不使用ng repeat时,它工作得非常好 <script type="text/javascript"> $('.date1').bootstrapMaterialDatePicker({ weekSt

我有一个动态创建日期字段的表单,它应该调用MaterialDatePicker(jquery)


$('.date1').bootstrapMaterialDatePicker({weekStart:0,time:false});
$.material.init();
当我不使用ng repeat时,它工作得非常好

<script type="text/javascript">
    $('.date1').bootstrapMaterialDatePicker({ weekStart : 0, time: false });
    $.material.init();
</script>
<div class="form-group-md pull-right">
    <input type="text"  class="date1 form-control" ng-model="JobExp.posting_date">
</div>

$('.date1').bootstrapMaterialDatePicker({weekStart:0,time:false});
$.material.init();
当我只使用一个datepicker时,它会弹出所需的datepicker,但当我使用ng repeat时,它会打开datepicker。
我使用类而不是为输入类型提供ID,但问题仍然存在。

它不起作用,因为当您调用脚本时,ng repeat尚未呈现,因此没有包含class
data1
的元素,您可能需要等待ng repeat呈现,最好将脚本移动到angular service

//call in controller when model for ng-repeat has been retrieved
function createDatepicker(){
  $scope.$applyAsync(function(){
    $('.date1').bootstrapMaterialDatePicker({ weekStart : 0, time: false });
    $.material.init();
  })
}

您可以在不指定时间的情况下使用
$timeout
,而不是
applyAsync
,这将确保在呈现ng repeat后的下一个摘要周期中调用该函数

,我如何使用ng click调用该函数?您将该函数分配给一个范围变量,并在ng click中调用它,虽然如果您认为它在第一次单击时可以工作,但不会,因为在第一次单击时您将创建日期选择器,并且元素
date1
还没有单击处理程序来打开日期选择器,但最好在数据加载后使用它
//call in controller when model for ng-repeat has been retrieved
function createDatepicker(){
  $scope.$applyAsync(function(){
    $('.date1').bootstrapMaterialDatePicker({ weekStart : 0, time: false });
    $.material.init();
  })
}