我正在尝试将包(ng-selector)从角度 4 更新到 5,但我无法让它正常工作。
据我了解,由于 Angular 5 仅从应用程序文件夹编译文件,要使用 node_modules 文件夹中的包,我的包需要公开 js 文件。
为了在我的包中公开 js 文件(到目前为止只公开了 ts 文件),我尝试了 tsc 和 ngc。这是问题所在:无论我使用什么编译器,我都不会收到编译错误。但是当我从 js 文件中导入我的包并尝试使用它时,我的控制台上总是会出现错误消息:
ERROR Error: No value accessor for form control with name: 'test1'
我知道在大多数情况下,此错误来自以下错误之一:
- 我忘了包括 FormsModule
- 我没有正确实现 ControlValueAccessor
- 我没有使用提供者 NG_VALUE_ACCESSOR
我省去了你检查的麻烦,这里不是这样。我的包在 Angular 4 上运行良好。
这是我的打字稿文件的编译问题,因为如果我将包文件直接放入我的应用程序文件夹,更改导入(而不是从 node_modules 文件夹导入,我从本地包文件导入),那么一切正常。
如果有人想尝试我所做的,这里是重现步骤:
- git clone git@github.com:Orodan/ng-selector.git
- cd ng-选择器
- git checkout 开发
- npm 安装
- npm run build-tsc 或 npm run build-ngc 根据您要测试的编译
- cd ngSelectorDemo
- npm 安装
- npm 开始
我想我的编译设置做错了,但我找不到到底是什么。所以如果有人能帮忙
谢谢您的帮助 :)