我正在开发与角4的Web应用程序,我有一个与我的参数在URL中的问题。可以导航到路由而不显示url中的参数?
我有5个字段,其中一个是base64图像,但是当我在URL中调用我的组件显示所有参数时,是否可能不显示这些?因为当我点击浏览器写入url时非常缓慢,因为有一个base64代码。
我正在开发与角4的Web应用程序,我有一个与我的参数在URL中的问题。可以导航到路由而不显示url中的参数?
我有5个字段,其中一个是base64图像,但是当我在URL中调用我的组件显示所有参数时,是否可能不显示这些?因为当我点击浏览器写入url时非常缓慢,因为有一个base64代码。
在它是绝对简单的,你可以使用具有公共价值的服务:
@Injectable()
export class Base64Share {
image: string
}
(虽然在很多情况下,Subject
能流变化的组件,值变化的最好)
然后,您可以设置图像父:
constructor(private imageShare: Base64Share) {
this.name = `Angular! v${VERSION.full}`
}
setImage() {
this.imageShare.image = 'iVBORw0KGgoAAAANSUhEUgAAAAUAAAAFCAYAAACNbyblAAAAHElEQVQI12P4//8/w38GIAXDIBKE0DHxgljNBAAO9TXL0Y4OHwAAAABJRU5ErkJggg==';
}
,并得到它的孩子:
ngOnInit() {
this.image = "data:image/png;base64, " + this.imageShare.image;
}
子模板
<img [src]="image | safeUrl"/>
如果你不希望数据在URL中显示,不把它作为路由参数。使用共享服务或使用解析器。 –
localstorage也可能有所帮助,具体取决于您的应用程序。 (cookies或会话变量) – F3L1X79
您应该阅读Victor Savkin的博客文章,了解角度应用程序中的状态管理(https://blog.nrwl.io/using-ngrx-4-to-manage-state-in-angular-applications-64e7a1f84b7b ),因为如果你没有在url中设置你的图像的base64,它不会被深度链接持久化,所以你必须采取你的参数,并找到一个基于我认为这篇博文的解决方案。 – Supamiu