【问题标题】:angular-strap datepicker updateOn submit角带日期选择器更新提交
【发布时间】:2014-12-10 21:17:44
【问题描述】:

http://plnkr.co/edit/I5JkHiNnwmklHAKh3ag9?p=preview

<form ng-model-options="{ updateOn: 'submit' }">
<input type="text" class="form-control" ng-model="activeEditorData.startDate" data-date-format="yyyy-MM-dd" data-date-type="number" data-min-date="02/10/86" data-max-date="today" data-autoclose="1" name="date2" bs-datepicker>
<button type="button" class="btn btn-default" ng-click="$hide()">Cancel</button>
<button type="submit" class="btn btn-primary" ng-click="$hide()">Save changes</button>
</form>

我在使用 ng-model-options 和 angular-strap datepicker 时遇到问题。按下保存时,实际的 $scope.date 会完全按照预期更新,但 datepicker 输入日期不会像更改日期时那样更新。有什么方法可以强制 datepicker 更新它的值吗?

如果您删除 ng-model-options 属性,它会按预期工作,但这消除了在取消按下时回滚所有数据的可能性,这对于更大的表单是有问题的。

【问题讨论】:

    标签: angularjs angular-ngmodel angular-strap


    【解决方案1】:

    所以某些指令似乎不喜欢当前父范围之外的双向绑定,所以我只是删除了 ng-model-options 并制作了对象的副本。

    控制器:

        /**
         * ng-model-options won't work with certain directives,
         * so this is needed to replicate its behaviour.
         */
        $scope.dataCopy = angular.copy($scope.activeEditorData);
    
        $scope.save = function(hide) {
            angular.forEach($scope.dataCopy, function(value, key) {
                $scope.activeEditorData[key] = value;
            });
            $scope.exit(hide);
        };
    

    HTML:

    <form>
        <input type="text" class="form-control" ng-model="dataCopy.startDate" data-date-format="yyyy-MM-dd" data-date-type="number" data-min-date="02/10/86" data-max-date="today" data-autoclose="1" name="date2" bs-datepicker>
        <button type="submit" class="btn btn-primary" ng-click="save($hide)">Save changes</button>
    </form>
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2023-01-09
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2018-09-13
      相关资源
      最近更新 更多