您需要做的是查看http://docs.angularjs.org/api/ng.filter:date这是一个默认情况下在 angular 中可用的过滤器。
似乎您正在通过日期传递其他内容。请参阅此处的场景。(/日期( *)/)。除了 * 中的内容之外,其他所有内容都不需要解析日期,并且默认的角度过滤器将无法解析它。从模型中去除这些额外的东西,或者,您可以编写自己的过滤器以在输入时去除它们。
编辑 :
看看http://docs.angularjs.org/api/ng.directive:ngModel.NgModelController(以及那里定义的例子!)。如果你打算在多个地方重用它,我建议你按照 ngModelController 描述的方法来做。创建一个新指令并在 ngModel 上实现 $render 和 $setViewValue。
如果您只想在一个地方执行此操作,那么另一种方法是为输入定义一个新模型。就像是
$scope.dateModel = "";
并使用它
<input type="text" ng-model="dateModel" ng-change="onDateChange()"/>
在您的控制器中,您必须执行以下操作:
$scope.$watch("datasource.myDateProp",function(newValue){
if(newValue){
convert(newValue);
}
});
function convert(val){
//convert the value and assign it to $scope.dateModel;
}
$scope.onDateChange = function(){
// convert dateModel back to the original format and store in datasource.myDateProp.
}