我有一個dob列,值來自於這是yyyy-mm-dd格式說2013-01-01,我需要在輸入框中顯示爲1月1日我可以通過編寫一個函數來實現,然後從該函數返回確切的值。 但是函數無法使用ng-model從輸入框中調用,因爲它可以使用ng-bind跨度進行調用。我可以理解,在輸入框中調用函數將打破雙向綁定。但是我可以使用其他什麼方法。如何實現ng-model的功能綁定(使用plnkr)
http://plnkr.co/edit/pZDpypsxM1OA2JwFhjjp?p=preview
<script type="text/javascript" src="https://ajax.googleapis.com/ajax/libs/angularjs/1.0.7/angular.min.js"></script>
<script type="text/javascript" >
var app = angular.module('app', []);
app.controller('AppCtrl', function ($scope) {
$scope.dob = "2013-01-01";
$scope.getDateOfBirth = function(dob){
var months = ["Jan","Feb","Mar","Apr","May","June","July","Aug","Sep","Oct","Nov","Dec"]
var split = dob.split("-");
return parseInt(split[2])+" "+months[parseInt(split[2])-1];
}
});
</script>
<span ng-app="app" ng-controller="AppCtrl" ng-bind="getDateOfBirth(dob)"></span>
<input type="text" ng-model="getDateOfBirth(dob)"/>
簽入[$ formatters and $ parsers](https://docs.angularjs.org/api/ng/type/ngModel.NgModelController#$parsers)。如果你願意,我可以用它們寫一個答案 – aarosil