Angular中DomSanitizer显示Base64图片报错:unsafe:SafeValue需用[property]=绑定
问题排查与解决方法
确认
documento.imageUrl已正确赋值为处理后的SafeResourceUrl
必须在拿到后端返回的Base64字符串后,调用getSafeUrl方法,把返回的安全URL赋值给documento.imageUrl,不能直接把原始Base64字符串塞进去。示例代码:// 假设后端返回的Base64数据存在base64Data变量中 const base64Data = '后端返回的Base64字符串'; documento.imageUrl = this.getSafeUrl(base64Data);修正模板绑定的语法细节
你当前模板里[src]= "documento.imageUrl"的写法中,[src]=后面有多余空格,虽然语法上允许,但建议改成标准写法避免潜在问题:<p><img [src]="documento.imageUrl"></p>确保
documento对象已正确初始化
如果documento是自定义类实例或者对象,要在组件初始化时就创建好,别让它处于undefined状态,否则绑定会失效。比如:// 如果是自定义类 documento = new YourDocumentModel(); // 如果是普通对象 documento: { imageUrl: SafeResourceUrl } = { imageUrl: '' as SafeResourceUrl };排查是否有二次处理把安全值转成了普通字符串
检查代码里有没有其他逻辑修改了documento.imageUrl,比如把它转成了普通字符串,这会让Angular再次判定它不安全。
内容的提问来源于stack exchange,提问作者Lucas Penna
相关产品推荐
相关产品推荐

