compileComponents
的文档只会无奈地声明以下内容:
但是,这并不能解释在什么情况下调用此函数是“必要的”,也不能解释不这样做的后果。我目前正在开发的应用程序对具有templateUrl
的组件进行了单元测试,并且这些测试涉及使用By.css
查看DOM,但是即使我们从未在代码库中的任何地方调用compileComponents
,它们也可以正常工作。同时,互联网上还有其他帖子,例如https://github.com/angular/angular-cli/pull/4757,表明不需要调用compileComponents
。
在什么情况下应该调用此方法,为什么?
最佳答案
如果您使用的是webpack(如果配置正确),则该构建会将templateUrl
编译为内联template
,将styleUrls
编译为styles
。因此,不需要compileComponents
,因为即使您没有使用template
和styles
,就像您正在使用compileComponents
和ojit_code一样。
例如,如果您使用的是SystemJS(或者您没有进行此预编译/转换的其他构建步骤),则不会发生这种情况。 Angular将需要发出XHR请求以检索外部模板和外部样式,然后进行编译。在这里,您需要ojit_code。
这在testing docs中声明
关于javascript - 我什么时候应该调用compileComponents,如何才能不这样做呢?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/43608398/