2012-10-11 18 views
7

angularjs bir yeni kullanıcı bir giriş (metin) bir tarih özelliği bağlama çalışıyorum ama tarihi nasıl biçimlendireceğini bilmiyorum.Json'dan AngularJS Tarihi Nasıl

benim json nesnesi Kontrolcü:

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

benim görünüm:

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

sonucunda i dize olsun "/ Tarih (1325376000000) /" benim metin kutusu üzerinde.

Bu tarihi nasıl biçimlendirebilirim?

cevap

3

Yapmanız gereken şey, varsayılan olarak açısal olarak kullanılabilen bir süzgeç olan http://docs.angularjs.org/api/ng.filter:date.

Tarihle ek şeyler ilettiğiniz anlaşılıyor. Buradaki senaryoya bakın. (/ Tarih (*) /). *'daki öğeler hariç her şey tarih ayrıştırmak için gerekli değildir ve varsayılan açısal filtre ayrıştırılamayacaktır. Bu ek şeyleri modelden çıkarın ya da alternatif olarak, bunları girişte şerit haline getirmek için kendi filtrenizi yazabilirsiniz.

DÜZENLEME:

http://docs.angularjs.org/api/ng.directive:ngModel.NgModelController göz at (ve orada tanımlanan örnek!). Bunu birden çok yerde yeniden kullanmayı düşünüyorsanız, bunu ngModelController'ın açıkladığı yöntemde yapmanızı öneririm. Yeni bir yönerge oluşturun ve ngModel'de $ render ve $ setViewValue uygulayın.

Bunu yalnızca bir yerde yapmak istiyorsanız, alternatif için giriş için yeni bir model tanımlamak gerekir.

$scope.dateModel = ""; 

ve benzeri bir şey buna Kumandanızda olarak

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

kullanın Eğer böyle bir şey yapmak zorunda kalacaktır:

$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-modeli = "datasource.myDateProp" bağlayıcı bir yöne bağlı tanımlar bağlayıcıyı kaybetmek istemiyorum. Bu örneği takip ederek bunu kaybeder! –

+1

ng modelinde bir format tanımlamanın herhangi bir yolu var mı? –

+0

@FlavioOliveira Değiştirilen cevaba bir bakın. – ganaraj