我真的不明白我在这里做错了什么:
模板:
<embed [src]="pdfUrl" width="500" height="100%" type='application/pdf'>
类别:
pdfURL;
constructor(private domSanitizer : DomSanitizer) {}
ngOnInit() {
this.pdfUrl = this.domSanitizer.bypassSecurityTrustUrl('http://example.com/pdf.pdf')
}
这实际上并未加载<embed>
,但不会引发错误。
我在SafeUrl
和pdfURL
上使用bypassSecurityTrustResourceUrl()
类型进行了尝试。
<embed>
标记会收到正确的网址,但不会显示任何内容。
答案 0 :(得分:7)
我认为它应该是:
import com.fasterxml.jackson.databind.ObjectMapper;
:
@Autowired
private ObjectMapper objectMapper;
@RestController
public class SampleController {
@RequestMapping(value = "/jsonInfo", method = RequestMethod.GET, produces = APPLICATION_JSON_VALUE)
public JsonNode jsonInfo() throws JsonProcessingException, IOException {
String string = "{\"name\": \"foo\"}"
return objectMapper.readTree(string);
}
}
并使用它:
this.pdfUrl = this.domSanitizer.bypassSecurityTrustResourceUrl('url')
参见 Plunkr
更新(Chrome中存在<iframe [src]="pdfUrl" width="500" height="600" type='application/pdf'></iframe>
标记的错误
对于embed
代码,您可以通过embed
重新注入嵌入代码:
outerHTML
对于此案例,请参阅 plunker
答案 1 :(得分:0)
首先感谢你,但我不明白我有完全一样的看到结果
我的嵌入不显示...我没有css隐藏它:
我认为这是因为我没有重新注入嵌入标签?当我打开sidenav时,我的嵌入已经存在,我只是更改了src网址并且它没有实现内容,是否有解决方案?
答案 2 :(得分:0)