在我们的外部Angular库中实现controlValueAccessor?

时间:2019-01-11 16:02:45

标签: javascript angular npm

我们已经实现了带有自定义输入,文本区域,日期选择器等元素的Angular组件库,我们希望在单独的应用程序中使用它们。

我们实现了一个通用的Angular组件库,以在不同的Angular应用程序之间共享我们的UI组件(表单元素)。 表单组件在库中正常运行,ControlValueAccessor可以与ngModel一起使用并将正确的值推送到表单。 但是,当我们想通过npm install在另一个Angular应用程序中使用它们(该库)时(因为我们已经从该库中创建了一个npm包),主机Angular应用程序会给出以下错误消息:

“错误:名称为'组件名称'的表单控件没有值访问器”

我们仔细检查了一下: 当我们尝试将这些组件用作子组件并且表单组件运行良好时,我们将其粘贴到宿主应用程序中。

似乎唯一的问题是使用我们的Angular组件库,并且宿主Angular应用程序无法检测到该库的ControlValueAccessor行为。

您对此有任何想法或解决方案吗?

1 个答案:

答案 0 :(得分:0)

我知道这个问题已有8个月了,但是可能是您使用npm链接安装了自己的库吗?我在这里遇到了同样的问题,经过大量的调试和拔头发后,我发现这似乎是npm和Windows上的符号链接被破坏了。

手动安装(在node_modules下创建文件夹并将构建文件复制到其中)之后,Angular库中的所有内容均可立即使用!

所以也许这可以帮助其他人寻找类似的问题。