compileComponents 的文档只会无奈地声明以下内容:



但是,这并不能解释在什么情况下调用此函数是“必要的”,也不能解释不这样做的后果。我目前正在开发的应用程序对具有templateUrl的组件进行了单元测试,并且这些测试涉及使用By.css查看DOM,但是即使我们从未在代码库中的任何地方调用compileComponents,它们也可以正常工作。同时,互联网上还有其他帖子,例如https://github.com/angular/angular-cli/pull/4757,表明不需要调用compileComponents

在什么情况下应该调用此方法,为什么?

最佳答案



如果您使用的是webpack(如果配置正确),则该构建会将templateUrl编译为内联template,将styleUrls编译为styles。因此,不需要compileComponents,因为即使您没有使用templatestyles,就像您正在使用compileComponents和ojit_code一样。

例如,如果您使用的是SystemJS(或者您没有进行此预编译/转换的其他构建步骤),则不会发生这种情况。 Angular将需要发出XHR请求以检索外部模板和外部样式,然后进行编译。在这里,您需要ojit_code。

这在testing docs中声明

关于javascript - 我什么时候应该调用compileComponents,如何才能不这样做呢?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/43608398/

10-13 09:02