我正在阅读有关Angular 2的书籍ng-book
,其中有以下内容:
let loadingGif: string = ((<any>window).__karma__) ? '' : require('images/loading.gif');
@Component({
selector: 'youtube-search',
template: `
<div class='container'>
<div class="page-header">
<h1>YouTube Search
<img
style="float: right;"
*ngIf="loading"
src='${loadingGif}' />
</h1>
</div>
我对这个部分很感兴趣:
src='${loadingGif}'
这本书中的简短注释如下:
请注意,我们的 img 具有 ${loadingGif} 的 src - loadingGif 变量来自程序早期的 require 语句。在这里,我们利用了 webpack 的图像加载功能。如果您想了解更多有关此功能的工作原理,请查看本章示例代码中的 webpack 配置或查看 image-webpack-loader⁴²。
但是没有详细信息。请问有人能解释一下它是如何工作的吗?
${loadingGif}
在Angular编译模板之前会被替换掉。如果loadingGif
在运行时发生变化,src
属性不会改变。要实现这一点,您需要使用Angular绑定,如src="{{loadingGif}}"
或[src]="loadingGif"
,但在这种情况下,loadingGif
需要是组件类中的一个字段或getter方法。 - Günter Zöchbauer