编译的angular 5文件在运行时触发错误“没有名称的表单控件的值访问器:”

问题描述 投票:0回答:1

我正在尝试从角度4到5更新包(ng-selector),但我无法使其正常工作。

据我所知,由于Angular 5只是编译应用程序文件夹中的文件,要使用node_modules文件夹中的包,我的包需要公开js文件。

为了在我的包中公开js文件(直到现在才暴露ts文件),我已经尝试了两个tsc ang ngc。这是问题:无论我使用什么编译器,我都没有得到编译错误。但是当我从js文件导入我的包并尝试使用它时,我总是在我的控制台上遇到错误:

ERROR Error: No value accessor for form control with name: 'test1'

我知道在大多数情况下,此错误来自以下错误之一:

  • 我忘了包含FormsModule
  • 我没有正确实现ControlValueAccessor
  • 我没有使用提供者NG_VALUE_ACCESSOR

我省去了你检查的麻烦,这不是这里的情况。我的包与Angular 4一起工作正常。

这是我的打字稿文件的编译问题,因为如果我将我的包文件直接放入我的appplication文件夹,更改导入(而不是从node_modules文件夹导入,我从本地包文件导入),然后一切正常。

如果有人想尝试我做的,这里是重现步骤:

  1. git clone [email protected]:Orodan / ng-selector.git
  2. cd选择器
  3. git checkout开发
  4. npm安装
  5. npm运行build-tsc或npm根据要测试的编译运行build-ngc
  6. cd ngSelectorDemo
  7. npm安装
  8. npm开始

我想我的编译设置有问题,但我找不到具体的内容。所以,如果有人可以帮忙

谢谢您的帮助 :)

angular typescript tsc tsconfig angular-compiler
1个回答
0
投票

我遇到了同样的问题,在单包应用程序中没问题但是当我将控件解压缩到一个单独的包中时(使用汇总),然后它会抛出“没有用于表单控件的值访问器,名称:xxxx”错误。

如果我添加“ngDefaultControl”指令,错误消息就消失了,但我认为这是一种解决方法,而不是正确的解决方案。如果有人知道永久解决方案,请告诉我们。谢谢。

© www.soinside.com 2019 - 2024. All rights reserved.