将三个输入字段以角度形式连接到一个模型中

时间:2014-08-25 04:33:49

标签: angularjs

<input type="text" ng-model="expiry.year" />
<input type="text" ng-model="expiry.month" />
<input type="text" ng-model="expiry.date" />

{
expiration: expiry.year + expiry.month, expiry.date
}

如何将其连接成一个模型?我有这个输入字段以多种形式存在。

2 个答案:

答案 0 :(得分:1)

不是一个完整的解决方案,但你可以按照这些方式进行工作

<input type="text" ng-model="expiry.year" ng-change="expiration = expiry.year + expiry.month, expiry.date" />
<input type="text" ng-model="expiry.month" ng-change="expiration = expiry.year + expiry.month, expiry.date"  />
<input type="text" ng-model="expiry.date" ng-change="expiration = expiry.year + expiry.month, expiry.date"  />

它不处理未定义的等情况。更好的是编写一个函数并在控制器中进行连接...

<input type="text" ng-model="expiry.year" ng-change="expirationUpdated()" />
<input type="text" ng-model="expiry.month" ng-change="expirationUpdated()" />
<input type="text" ng-model="expiry.date" ng-change="expirationUpdated()" />

在功能中执行

var expirationUpdated = function() { ///concate logic here}

答案 1 :(得分:1)

<input type="text" ng-model="expiry.year" />
<input type="text" ng-model="expiry.month" />
<input type="text" ng-model="expiry.date" />

{{ expiration }}

您可以在控制器中设置手表

$scope.$watch('expiry', function(newVal) {
    $scope.expiration = newVal.year + '-' + newVal.month + '-' + newVal.date
}, true);