2016-09-06 99 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变量,然后动态更改变量的值。