2016-02-10 45 views
0

我有一個動態創建日期字段,它是假設調用材料日期選擇器(jQuery的)引導材料日期選擇不NG重複彈出

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

一種形式,當我不使用納克它的工作原理精絕-重複。

<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> 

時,我只用一個日期選擇器,但是當我用NG-重複打開日期選擇它彈出所需的日期選擇器。 我使用類而不是給Ids輸入類型,但仍存在問題。

回答

0

它不起作用,因爲當你調用腳本ng-repeat還沒有渲染,所以沒有類data1的元素,你可能需要等待ng-repeat渲染,最好將腳本移動到角度服務

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

,而不是applyAsync可以使用$timeout沒有指定時間,將確保函數被調用NG-重複已經呈現

+0

,如何調用此方法,NG-點擊後下一消化週期? –

+0

您將該函數賦值給一個作用域變量並用ng-click來調用它,但是如果您認爲它可以在第一次點擊時工作 - 它不會,因爲在第一次點擊時您會創建datepicker,而元素'date1'不會點擊處理程序尚未打開日期選擇器,最好在數據加載後使用它 – maurycy