19

我有一个视图,要求用户在文本框中输入他们的出生日期。

我正在使用 UI-Utils 中的掩码指令。

我的视图中有这个输入元素:

<input ui-mask="99/99/9999" placeholder="MM/DD/YYYY" type="text" name="uBirthdate" ng-model="user.birthdate" required/>

在我的控制器中,我将范围设置为

myApp.controller('HomeCtrl', function ($scope, myService){

    $scope.user = registerService.getCurrentUser();

    $scope.submit = function () {
        //do something with $scope.user.birthdate
    };

    }
});

我的问题是,在我的控制器中,birthdate 属性包含来自输​​入的值,没有掩码字符,因此输入

11/20/1980在视图中成为11201980$scope 上的属性

如何确保我的控制器中有一个有效的屏蔽日期可以使用?仅供参考,此日期将作为 JSON 在 POST 请求中发送到我的服务器。

4

3 回答 3

45

升级到最新的 angular-ui 并使用以下语法

ui-mask="99/99/9999" model-view-value="true"

model-view-value 将掩码保留在您的模型对象上。

于 2014-04-24T06:21:02.937 回答
1

试试这个 https://github.com/candreoliveira/ngMask 对所有面具的帮助

于 2015-09-02T05:05:55.063 回答
-2

作为字符串:

var string = '11201980';
var month = string.substring(0,2);
var day = string.substring(2,4);
var year = string.substring(4,8);
var birthday = month + '/' + day + '/' + year;

然后,作为日期:

var birthdate = new Date(birthday);
于 2014-01-08T15:21:27.130 回答