【问题标题】:Angular JS : Data binding not working in DateAngular JS:数据绑定在日期中不起作用
【发布时间】:2016-09-06 15:01:16
【问题描述】:

我正在使用 Angular JS 的 ui-date。循环渲染了多个日期。下面是我的 HTML 代码。

<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 上。你能帮我解决这个问题吗?

【问题讨论】:

  • 在您的控制器初始化数据结束时,使用$scope.$apply() 更新您的范围并将您的更改反映到 UI,如果它解决了您的问题,请让我提交我的解决方案作为答案
  • 要实现双向绑定,需要使用这里缺少的 ng-model 指令

标签: javascript jquery angularjs node.js


【解决方案1】:

这一行ng-attr-id="{{ 'dateCmp-' + k}}" 仅将值呈现给id 属性。 ng-attr-id 不绑定这些值。

要将您的日期值绑定到&lt;input&gt;,您应该在ng-model 属性中设置适当的js 变量,然后动态更改变量的值。

【讨论】:

    猜你喜欢
    • 2015-06-19
    • 2016-10-23
    • 2015-06-24
    • 1970-01-01
    • 1970-01-01
    • 2017-02-22
    • 2018-07-13
    • 2013-11-08
    • 1970-01-01
    相关资源
    最近更新 更多