3

http://plnkr.co/edit/HN1PBGRsK6xqT9pwXcKY?p=preview它应该很自我解释

ctrl.$formatters当我最初设置模型值时运行,但在我更新它之后不运行。

根据这个是否在第一次填充视图时调用了 $formatters?每次更改模型值时它都应该触发,所以出了什么问题?谢谢。

4

1 回答 1

2

使用自然模型设置器,scope[attrs.ngModel]而不是 setviewvalue。

app.directive('format', function($filter) {
  return {
    require: 'ngModel',
    link: function(scope, element, attrs, ctrl) {
    element.unbind('input').unbind('keydown').unbind('change');
        element.bind('blur', function() {
            if (element.val()) {
                scope.$apply(function() {
                    scope[attrs.ngModel] = element.val();
                });         
            }
        });

        ctrl.$formatters.unshift(function(modelValue) {
            if (modelValue) {
                var formatted = $filter('currency')(modelValue);
                return formatted;
            }
        });
    }
}
});

您还需要一个解析器才能正常工作。

于 2013-04-18T18:57:51.653 回答