Jquery 引导材料日期选择器不会在ng repeat中弹出
我有一个动态创建日期字段的表单,它应该调用MaterialDatePicker(jquery)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
$('.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();
})
}