2013-11-28 47 views
1

我正在面臨一個問題,當我試圖通過使用指令將json日期格式化爲正常日期時。Angular JS - :範圍通過指令格式化後丟失

我對Angular相當陌生,請建議我錯過了什麼?

我的HTML是這樣的:

<form ng-submit="UpdateShipment()"> 
     <input type="text" format-Date ng-model="old.ship_date" /> 
     <input type="submit" id="submit" value="Save" /> 
</form> 

指令:

.directive('formatDate', function() { 

return { 
    require: 'ngModel', 
    scope : {'ngModel' : '='}, 
    link: function (scope, element, attr, ngModelController) { 

     ngModelController.$formatters.unshift(function (valueFromModel) { 

      if (angular.isUndefined(valueFromModel)) { 
       return valueFromModel; 
      } 
      var date = new Date(parseInt(valueFromModel.substr(6))); 
     return date.toLocaleDateString(); 
     }); 
    } 
}; 
}); 

控制器:

 $scope.UpdateShipment = function() { 
     console.log($scope.old.ship_date) //On Form Submit getting old Json Format date 
     //$http call here 
     } 

非常感謝。

+2

你不能用孤立的範圍使用NG-模式控制器 –

回答

0

你不應該使用隔離範圍與NG-模式控制器,但如果你堅持,你必須使用NG-模型內部$ parent屬性

<input type="text" format-Date ng-model="$parent.old.ship_date" /> 
+0

我當做了你提到的,但結果相同。 –

+0

你可以設置你的小提琴 –

+0

http://jsfiddle.net/8qdqM/7 我試圖設置一個小提琴,但它給出了一個小錯誤,希望你也可以解決這個問題。謝謝 –