2017-05-17

通用的@Component/@directive... 共用到各Lazy Page會遇到 error

** 這問題發生在 Angular4.0, 其它版本沒試過 **

如果你有一個 Component 或者 Directive 會在各個 Page 重複使用,你可能會遇到這樣的錯誤訊息

Error: Type ValidateOnBlurDirective is part of the declarations of 2 modules: SignupPageModule  and LoginPageModule! Please consider moving ValidateOnBlurDirective to a higher module that imports SignupPageModule and LoginPageModule. You can also create a new NgModule that exports and includes ValidateOnBlurDirective then import that NgModule in SignupPageModule and LoginPageModule.


意思就是說你有個 component 分別在 LoginPage 及 SignupPage 這2個 LazyPage 共用了。解決方法就是新建一個 NgModule ,將 該 Component 放在該 NgModule 裡,然後再由 LoginPage 及 SignupPage  Import 進去使用即可解決