2012-10-11 31 views
7

soy un novato en angularjs estoy tratando de vincular una propiedad de fecha a una entrada (texto) pero no sé cómo formatear la fecha.Cómo AngularJS Fecha de json

mi JSON objeto controler:

$scope.datasource = {"prop1":"string data", "myDateProp":"\/Date(1325376000000)\/"} 

mi punto de vista:

<input type="text" ng-model="datasource.myDateProp" /> 

como resultado, me sale la cadena "/ Fecha (1325376000000) /" en mi cuadro de texto.

¿cómo puedo formatear esta fecha?

Respuesta

3

Lo que debe hacer es echar un vistazo a http://docs.angularjs.org/api/ng.filter:date que es un filtro que está disponible en angular por defecto.

Parece que está pasando cosas adicionales con la fecha. Vea el escenario aquí. (/ Fecha (*) /). Excepto por las cosas en *, todo lo demás no es necesario para analizar la fecha y el filtro angular predeterminado no podrá analizarlo. Elimine estas cosas adicionales del modelo o, alternativamente, podría escribir su propio filtro para quitarlas de la entrada.

EDIT:

Tenga una mirada en http://docs.angularjs.org/api/ng.directive:ngModel.NgModelController (y el ejemplo que se define allí!). Si tiene la intención de volver a utilizar esto en varios lugares, le sugiero que lo haga en el método que describe ngModelController. Cree una nueva directiva e implemente $ render y $ setViewValue en ngModel.

Si solo quiere hacer esto en un lugar, entonces un alternativo sería definir un nuevo modelo para la entrada. Algo así como

$scope.dateModel = ""; 

y usarlo

<input type="text" ng-model="dateModel" ng-change="onDateChange()"/> 

En su controlador, tendrá que hacer algo como:

$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. 
} 
+0

ng-modelo = "datasource.myDateProp" define un enlace bidireccional , no quiero perder el enlace. siguiendo ese ejemplo o perder eso! –

+1

¿hay alguna forma de definir un formato en ng-model? –

+0

@FlavioOliveira Echa un vistazo a la respuesta modificada. – ganaraj