Angular2中的自定义值访问器

TDaver

所以我有一个格式值访问器指令:

const CUSTOM_VALUE_ACCESSOR = new Provider(
    NG_VALUE_ACCESSOR, { useExisting: forwardRef(() => NumbersValueAccessor), multi: true });

@Directive({
    selector: 'input[format]',
    host: { '(input)': 'onMyChange($event.target.value)' },
    providers: [CUSTOM_VALUE_ACCESSOR]
})  
export class NumbersValueAccessor extends DefaultValueAccessor {
//...
}

然后我像

@Component({
    templateUrl: 'frequencyPage.html'
    , moduleId: module.id
    , directives: [/*...*/ NumbersValueAccessor]
})
export class FrequencyPage //...

并在html中

  <input  format="{number:true}" [(ngModel)]="test.alpha"/>

可以实例化它,但是查看角度JIT编译的模板代码:

  self._DefaultValueAccessor_32_3 = new jit_DefaultValueAccessor3(self.renderer,new jit_ElementRef18(self._el_32));
  self._Token_NgValueAccessor_32_4 = [
    self._DefaultValueAccessor_32_3,
    self._DefaultValueAccessor_32_3
  ]
  ;
  self._NgModel_32_5 = new jit_NgModel5(null,null,null,self._Token_NgValueAccessor_32_4);
  self._NgControl_32_6 = self._NgModel_32_5;
  self._NgControlStatus_32_7 = new jit_NgControlStatus7(self._NgControl_32_6);
  self._NumbersValueAccessor_32_8 = new jit_NumbersValueAccessor8(self.renderer,new jit_ElementRef18(self._el_32));

它是在AFTER ngModel之后创建的,因此不会传递给它,因此,当我实际编辑输入时,它是被调用的默认值访问器。我想念什么?


编辑:我发现的一件事:如果我不是扩展DefaultValueAccessor,而是从头开始重新实现ControlValueAccessor,它将起作用。它是angular2模板编译器中的错误吗?

毁灭

它是angular2模板编译器中的错误吗?

是的,github中已经存在多个问题:

https://github.com/angular/angular/issues/9146#issuecomment-230410616

装饰器似乎无法覆盖angular2-class的元数据。


与该元数据错误有关的更多问题:

https://github.com/angular/angular/issues/9758

https://github.com/angular/angular/issues/8925

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

折线图自定义X值访问器

来自分类Dev

Angular2的自定义渲染器

来自分类Dev

在Angular2的自定义验证器中注入服务

来自分类Dev

从Angular2中的自定义验证器访问服务

来自分类Dev

如何在Angular2 / 4/5中实现自定义异步验证器

来自分类Dev

angular2自定义指令输入语法

来自分类Dev

如何在Dart中使用Angular2实现自定义验证器?

来自分类Dev

Angular2:使用自定义装饰器或批注将提供程序注入组件吗?

来自分类Dev

使用ngFor处理自定义指令-Angular2

来自分类Dev

如何使angular2自定义事件冒泡

来自分类Dev

Angular 2自定义控件链接到带有控件值访问器,组合日期选择器的ngControl

来自分类Dev

NgSwitch中的Angular2自定义组件

来自分类Dev

扩展http类并访问自定义属性(Angular2打字稿)

来自分类Dev

Angular2自定义输入-必须定义令牌

来自分类Dev

Angular2自定义验证器未调用

来自分类Dev

angular2获取自定义属性的值

来自分类Dev

Angular 10-形式化-在自定义形式化包装器中访问字段的值

来自分类Dev

折线图自定义X值访问器

来自分类Dev

Angular 2自定义控件链接到带有控件值访问器,组合日期选择器的ngControl

来自分类Dev

Angular2中的自定义值访问器

来自分类Dev

扩展http类并访问自定义属性(Angular2打字稿)

来自分类Dev

如何编写依赖于Angular2中当前组件的属性值的自定义表单验证器(由模型驱动)

来自分类Dev

Angular2自定义验证器未调用

来自分类Dev

Angular2 Raw HTML自定义属性

来自分类Dev

自定义管道在Angular 2中

来自分类Dev

在angular2的自定义Http中未定义注入的Logger

来自分类Dev

如何在Angular2中制作自定义验证器

来自分类Dev

DevExtreme Angular2 表单的自定义标签

来自分类Dev

Angular - 控制器中的自定义验证器功能:如何访问“this”?

Related 相关文章

  1. 1

    折线图自定义X值访问器

  2. 2

    Angular2的自定义渲染器

  3. 3

    在Angular2的自定义验证器中注入服务

  4. 4

    从Angular2中的自定义验证器访问服务

  5. 5

    如何在Angular2 / 4/5中实现自定义异步验证器

  6. 6

    angular2自定义指令输入语法

  7. 7

    如何在Dart中使用Angular2实现自定义验证器?

  8. 8

    Angular2:使用自定义装饰器或批注将提供程序注入组件吗?

  9. 9

    使用ngFor处理自定义指令-Angular2

  10. 10

    如何使angular2自定义事件冒泡

  11. 11

    Angular 2自定义控件链接到带有控件值访问器,组合日期选择器的ngControl

  12. 12

    NgSwitch中的Angular2自定义组件

  13. 13

    扩展http类并访问自定义属性(Angular2打字稿)

  14. 14

    Angular2自定义输入-必须定义令牌

  15. 15

    Angular2自定义验证器未调用

  16. 16

    angular2获取自定义属性的值

  17. 17

    Angular 10-形式化-在自定义形式化包装器中访问字段的值

  18. 18

    折线图自定义X值访问器

  19. 19

    Angular 2自定义控件链接到带有控件值访问器,组合日期选择器的ngControl

  20. 20

    Angular2中的自定义值访问器

  21. 21

    扩展http类并访问自定义属性(Angular2打字稿)

  22. 22

    如何编写依赖于Angular2中当前组件的属性值的自定义表单验证器(由模型驱动)

  23. 23

    Angular2自定义验证器未调用

  24. 24

    Angular2 Raw HTML自定义属性

  25. 25

    自定义管道在Angular 2中

  26. 26

    在angular2的自定义Http中未定义注入的Logger

  27. 27

    如何在Angular2中制作自定义验证器

  28. 28

    DevExtreme Angular2 表单的自定义标签

  29. 29

    Angular - 控制器中的自定义验证器功能:如何访问“this”?

热门标签

归档