1
EDIT:問題の原因を発見しました。私は今、どのようにそれに対応するための解決策を探しています。DevモードでNgFormエラーのプロバイダがありません。4.4.6
注:この問題は、DEVモードで起こっている(つまり、AOTを使用してをprod、およびないではない)
私はここから "更新" ソリューションを使用しています:
https://stackoverflow.com/a/46324043/3164070
をフォーム上の有効なフラグを更新していない子コンポーネントの入力に関する問題を解決します。しかし、かなり単純なテストプロジェクトで働く私たちの本当のプロジェクトに移動するとき、それは、このエラーがスローされます。
core.es5.js:1020 ERROR Error: Uncaught (in promise): Error: No provider for NgForm!
Error: No provider for NgForm!
at ZoneAwareError (http://192.168.2.34:4200/vendor.bundle.js:153804:33)
at injectionError (http://192.168.2.34:4200/vendor.bundle.js:1378:90)
at noProviderError (http://192.168.2.34:4200/vendor.bundle.js:1416:12)
at ReflectiveInjector_._throwOrNull (http://192.168.2.34:4200/vendor.bundle.js:2858:19)
at ReflectiveInjector_._getByKeyDefault (http://192.168.2.34:4200/vendor.bundle.js:2897:25)
at ReflectiveInjector_._getByKey (http://192.168.2.34:4200/vendor.bundle.js:2829:25)
at ReflectiveInjector_.get (http://192.168.2.34:4200/vendor.bundle.js:2698:21)
at resolveNgModuleDep (http://192.168.2.34:4200/vendor.bundle.js:9701:25)
at NgModuleRef_.get (http://192.168.2.34:4200/vendor.bundle.js:10771:16)
at resolveDep (http://192.168.2.34:4200/vendor.bundle.js:11259:45)
at _createProviderInstance (http://192.168.2.34:4200/vendor.bundle.js:11102:20)
at resolveDep (http://192.168.2.34:4200/vendor.bundle.js:11238:56)
at createClass (http://192.168.2.34:4200/vendor.bundle.js:11129:32)
at createDirectiveInstance (http://192.168.2.34:4200/vendor.bundle.js:10960:37)
at createViewNodes (http://192.168.2.34:4200/vendor.bundle.js:12401:53)
at ZoneAwareError (http://192.168.2.34:4200/vendor.bundle.js:153804:33)
at injectionError (http://192.168.2.34:4200/vendor.bundle.js:1378:90)
at noProviderError (http://192.168.2.34:4200/vendor.bundle.js:1416:12)
at ReflectiveInjector_._throwOrNull (http://192.168.2.34:4200/vendor.bundle.js:2858:19)
at ReflectiveInjector_._getByKeyDefault (http://192.168.2.34:4200/vendor.bundle.js:2897:25)
at ReflectiveInjector_._getByKey (http://192.168.2.34:4200/vendor.bundle.js:2829:25)
at ReflectiveInjector_.get (http://192.168.2.34:4200/vendor.bundle.js:2698:21)
at resolveNgModuleDep (http://192.168.2.34:4200/vendor.bundle.js:9701:25)
at NgModuleRef_.get (http://192.168.2.34:4200/vendor.bundle.js:10771:16)
at resolveDep (http://192.168.2.34:4200/vendor.bundle.js:11259:45)
at _createProviderInstance (http://192.168.2.34:4200/vendor.bundle.js:11102:20)
at resolveDep (http://192.168.2.34:4200/vendor.bundle.js:11238:56)
at createClass (http://192.168.2.34:4200/vendor.bundle.js:11129:32)
at createDirectiveInstance (http://192.168.2.34:4200/vendor.bundle.js:10960:37)
at createViewNodes (http://192.168.2.34:4200/vendor.bundle.js:12401:53)
at resolvePromise (http://192.168.2.34:4200/vendor.bundle.js:153599:31) [angular]
at resolvePromise (http://192.168.2.34:4200/vendor.bundle.js:153570:17) [angular]
at http://192.168.2.34:4200/vendor.bundle.js:153647:17 [angular]
at Object.onInvokeTask (http://192.168.2.34:4200/vendor.bundle.js:4090:33) [angular]
at ZoneDelegate.invokeTask (http://192.168.2.34:4200/vendor.bundle.js:153284:36) [angular]
at Zone.runTask (http://192.168.2.34:4200/vendor.bundle.js:153052:47) [<root> => angular]
at drainMicroTaskQueue (http://192.168.2.34:4200/vendor.bundle.js:153480:35) [<root>]
at <anonymous> [<root>]
問題は、同じコンポーネントをフォームにせずに使用できることではありませんので、何もありNgFormのプロバイダ。
フォームがない場合に、viewProvidersメンバーを動的に使用する方法はありますか?親NgForm
プロバイダが存在しない場合
あなたは伝説です。ありがとう! –