2013-11-22 46 views
0

我剛從版本1.0.8升級到角度版本1.2.1,並且我的自定義指令已停止工作。該指令應該格式化一個綁定到通過ng-model的文本輸入的日期。這裏的指令和HTML和這裏的plunker example,在1.0.8工作,但不是1.2.1:AngularJS Upgrade Broke Custom Directive

 app.directive('uiDate', function ($filter, $parse) { 
      return { 
       require: 'ngModel', 
       restrict: 'A', 
       link: function (scope, element, attrs, ngModel) { 
        // THIS FUNCTION ISN'T FIRING IN 1.2.1 
        ngModel.$render = function() { 
         element.val('formatted date goes here'); 
         //element.val(formatDate(ngModel.$modelValue)); 
        }; 
       } 
      }; 
     }); 

<input type="text" ng-model="crazyDate" ui-date /> 

如果有更好的方式來格式化,看起來像「/日期微軟序列化的日期(13806億)/'轉換成與ng-model綁定的文本輸入,我歡迎您提供更好的解決方案,但使用自定義指令是我可以將其視爲新角度用戶的唯一方法。謝謝你的幫助!

安迪

+2

有你試圖用'範圍。 $ watch(attrs.ngModel)''而不是'ngModel。$ render'我聽說在使用方式中使用'$ render'有一些問題並且它會對ngModel進行連續更改。 –

回答