2016-09-06 98 views
0

我正在使用Angular JS的ui-date。有多個日期被循環渲染。下面是我的HTML代碼。Angular JS:數據綁定不工作Date

<tr ng-repeat="(k,v) in :: vm.dateMap"> 
 
<th> 
 
<input ng-attr-id="{{ 'dateCmp-' + k}}" ui-date="vm.dateOptionMap[k]"> 
 
</th> 
 
</tr>

在我的控制器,dateOptionMap包含

  vm.dateOptionMap = {}; 
 
      vm.dateOptionMap['03/06/2014'] = { 
 
       changeYear: true, 
 
       changeMonth: true, 
 
       dateFormat: 'dd-mm-yy' 
 
      }; 
 
      vm.dateOptionMap['07/21/2016'] = { 
 
       changeYear: true, 
 
       changeMonth: true, 
 
       dateFormat: 'dd-mm-yy' 
 
      }; 
 
      vm.dateOptionMap['09/06/2017'] = { 
 
       changeYear: true, 
 
       changeMonth: true, 
 
       dateFormat: 'dd-mm-yy' 
 
      };

上的按鈕,我對下面的一個變化圖值的點擊下面值

 vm.dateOptionMap['03/06/2014'] = { 
 
        changeYear: false, 
 
        changeMonth: false, 
 
        dateFormat: 'dd-mm-yy' 
 
       };

如何過這種變化沒有得到UI上反映出來。你能幫我解決這個問題嗎?

+0

在您的控制器初始化數據的最後,使用'$ scope。$ apply()'來更新您的範圍並反映您對UI的更改,如果它解決了您的問題,請提交我的解決方案作爲答案 – Pezhvak

+0

要實現雙向綁定,您需要使用此處缺少的ng-model指令 –

回答

0

此行ng-attr-id="{{ 'dateCmp-' + k}}"僅向id屬性呈現值。 ng-attr-idDOES NOT BIND的值。

要將日期值綁定到<input>,您應該在ng-model屬性中設置相應的js變量,然後動態更改變量的值。