2013-02-06 43 views
3

我不确定这是否是一个错误,但这是我正在尝试完成的。我只关心谷歌浏览器,因为这是为了调试目的。我想使用html5输入类型日期并让它更新模型。问题来了,如果我从弹出的角度选择日期不会更新它。如果我使用箭头来遍历日期,那么它会更新它。有没有其他方法可以让ngModel更新?使用输入类型时ngModel不会更新日期

<div ng-app> 
    <input type="date" data-ng-model="date" style="width:200px;" /> 
    <br> 
    {{ date }} 
</div> 

下面是它的一个小提琴:http://jsfiddle.net/rtCP3/55/

+2

错误的小提琴?... –

+0

它似乎在Chrome 35和Angular 1.3.0测试版中工作。你使用什么版本? –

回答

5

角监听input事件,这似乎触发当你点击鼠标向上/向下或点击错误。出于某种原因,虽然(错误?)该事件不会从日历对话框中触发。

我创建了简单的指令,它注册到change事件,然后更新模型。你可以看到一个工作示例here

的指令很简单:

module.directive('dateFix', function() { 
    return { 
     restrict: 'A', 
     require: 'ngModel', 
     link: function (scope, element, attr, ngModel) { 
      element.on('change', function() { 
       scope.$apply(function() { 
        ngModel.$setViewValue(element.val()); 
       });   
      }); 
     } 
    }; 
}); 

,然后用它是这样的:<input type="date" ng-model="dateValue" date-fix />

一个临时的解决办法,至少。

1
<form> 
    <input type="date" name="date" data-ng-model="date" style="width:200px;" /> 
</form> 

,你必须在值:form.date $ viewValue;

相关问题