我需要在运行时使用 webpack 生成的哈希动态解析图像,例如,imgA.bd79a5ba.png。
{
test: /\.png$/,
loader: 'file-loader?name=images/[name].[hash].[ext]',
}
我最终创建了一个别名模块并需要图像:
let map = {
'imgA': require('./images/imgA.png'),
'imgB': require('./images/imgB.png'),
'imgC': require('./images/imgC.png')
}
这会生成地图:
{
'imgA': imgA.bd79a5ba.png,
'imgB': imgB.e51f66a2.png,
'imgC': imgC.d84ae37c.png
}
在我的组件中,我从地图中解析了 url:
self.link = function link(scope) {
scope.imageUrl = function(name) {
function return map[name];
}
};
然后加载图像很简单:
<img ng-src="{{ imageUrl('imgA') }}">
以上是简化的。我发现为地图创建一个模块很有用:
export default {
'imgA': require('./images/imgA.png'),
'imgB': require('./images/imgB.png'),
'imgC': require('./images/imgC.png')
}
然后将其导入到组件模块中:
import urlMap from './imageUrlMap'
console.log(urlMap.imgA)
> imgA.bd79a5ba.png