我剛從版本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綁定的文本輸入,我歡迎您提供更好的解決方案,但使用自定義指令是我可以將其視爲新角度用戶的唯一方法。謝謝你的幫助!
安迪
有你試圖用'範圍。 $ watch(attrs.ngModel)''而不是'ngModel。$ render'我聽說在使用方式中使用'$ render'有一些問題並且它會對ngModel進行連續更改。 –