2016-07-17 44 views
0

在角(1.3),我希望能夠進入我person對象的dob領域,這有一個名爲age另一個屬性,其計算基礎上,dob年齡的屬性。綁定到這是一個公式暴露出另一個

所以我有字段中輸入dob爲:

<div class="form-group"> 
    <input class="form-control" type="date" ng-model="player.dob" placeholder="DD/MM/YYYY" /> 
</div> 

,我展示了一些信息的用戶類型,因爲他們輸入(姓名,性別,說明等),但是當用戶進入dob,我想自動顯示age這樣的:

<div>{{player.age}}</div> 

我怎麼能這樣做?

感謝

+0

我覺得這裏是你的答案http://stackoverflow.com/questions/24883308/convert-birthday-to-age-in-angularjs – uzaif

+0

尼斯一個,我沒有考慮使用過濾器。我甚至不需要年齡屬性。謝謝 – Rodders

回答

1

我不知道這是否是你在找什麼,但如果我是正確的,你可以創建一個自定義過濾器來顯示基於的年齡0輸入,如下圖所示:

angular.module('app', []) 
 
    .controller('mainCtrl', function($scope) { 
 
    $scope.player = {}; 
 
    }) 
 

 
    .filter('ageFilter', function() { 
 
    return function(dob) { 
 
     var ageDifMs = Date.now() - new Date(dob).getTime(); 
 
     var ageDate = new Date(ageDifMs); 
 
     return Math.abs(ageDate.getUTCFullYear() - 1970); 
 
    }; 
 
    });
<html ng-app="app"> 
 

 
<head> 
 
    <script src="https://cdnjs.cloudflare.com/ajax/libs/angular.js/1.5.7/angular.min.js"></script> 
 
</head> 
 

 
<body ng-controller="mainCtrl"> 
 
    <div class="form-group"> 
 
    <input class="form-control" type="date" ng-model="player.dob" placeholder="DD/MM/YYYY" /> 
 
    </div> 
 
    <hr> 
 
    <div ng-if="player.dob" ng-bind="player.dob | ageFilter"></div> 
 
</body> 
 

 
</html>

+1

與我最終做的略有不同,但最終,過濾器纔是答案。謝謝 – Rodders

0

可以使用ngChange

<div class="form-group"> 
<input class="form-control" type="date" ng-model="player.dob" ng-change="calculateAge()" placeholder="DD/MM/YYYY" /> 

,然後在你的控制器:

$scope.calculateAge = function(){ 
    //do the calculations you want 
} 
相關問題