2

我正在为我的 angularjs SPA 项目使用来自http://mgcrea.github.io/angular-strap/##datepickers的 angular-strap datepicker。使用 ngModel 双向绑定编辑现有记录时,Angular 不会检测到日期字段更改,即使我通过更新另一个非日期字段来强制保存表单,新日期也不会在后端更新。这是我的 html 文件中的相关部分:

<input name="DecisionDatePicker" id="ddpID" type="text" class="form-control input-medium" tabindex="14" placeholder="{{vm.format}}"
   data-date-format="MM-dd-yyyy" 
   data-ng-model="vm.formData.dateDecision"
   data-ng-required="vm.decisionDateRequired"
   bs-datepicker />

我没有在我的 js 文件中做任何特别的事情。我正在使用breathjs 进行数据处理,它在其他领域也能正常工作。我究竟做错了什么?任何帮助表示赞赏。

4

1 回答 1

0

我遇到了同样的问题,我用一个自定义指令解决了这个问题,该指令在 bs-datepicker 调度模糊事件时更新模型:

angular.module('moduleName').directive('updateModelOnBlur', 
      ['$parse', function($parse) {
        return {
          restrict: 'A',
          require: 'ngModel',
          link: function (scope, elm, attrs) {
              elm.bind("blur", function (event) {
                scope.$apply(function () {
                  var model = $parse(attrs.ngModel);
                  model.assign( scope, elm.context.value );
                });
              });
          }
        };
      }]
    );

我知道这只是一个技巧,而不是问题的最终解决方案。但是,如果您被卡住并想继续前进,有时黑客可能会很有用。

如果您想在更新模型之前操作日期格式,您还可以在指令中包含 $filter 服务。;)

于 2015-05-19T16:18:18.750 回答