【问题标题】:Load Image According to ID from LocalStorage in Angular 4根据Angular 4中LocalStorage的ID加载图像
【发布时间】:2017-10-24 22:10:52
【问题描述】:

我可以从本地存储中引用一个 ID,以便分配应该显示的图像吗?我在 assets/ 文件夹下的 AngularJS 应用程序中有图像列表。如何获取当前用户的 ID 并引用它,以便获得动态图像?如果用户改变,那么图像也会改变?

TS

constructor() {
    this.image1 = '../../assets/images/image1.png';
}

HTML

<img [src]="image1">

【问题讨论】:

    标签: angular local-storage angular-services


    【解决方案1】:

    你可以这样做:

    this.image1 = `assets/images/image${id}.png`;
    

    其中 'id' 是一个变量,其值是您将从存储(或任何其他来源)中读取的值。

    更新:

    class YourComponent {
    
       image1: string = '';
    
       newImage(id: number) {
          this.image1 = `assets/images/image${id}.png`;
       }
    
      someMethod() {
        //do some stuff
        this.newImage(2); //will change image1 to 'assets/images/image2.png'
        //do more stuff
        this.newImage(3); //now image1 is 'assets/images/image3.png'
      }
    }
    

    【讨论】:

    • 这些是 ES6 中的“模板文字”功能,TypeScript 也支持:developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/…
    • 我的意思不是我在stackoverflow xD中的意思
    • 这已经在我的资产文件夹“../../assets/images/image1.png'”中了。图片的文件名是image1.png?我认为这应该是动态的“this.image1”
    • 如果 this.image1 是动态的,那么您的模板必须是动态的。不需要这个,保持变量名称固定,只改变它的值。这就是使用变量的目的……
    • 使用他的代码并执行:this.newImage(localStorage.getItem(‘user_id’));
    【解决方案2】:

    template.html

    <img src="{{'assets/images/image'+id+'.png'}}">
    

    component.ts

    export class Component {
        private id = localStorage.getItem('user_id');
    }
    

    更新答案:

    模板

    <img [src]="image1">
    

    component.ts

    export class Component {
        private image1 = `assets/images/image${localStorage.getItem('user_id')}.png`;
    }
    

    【讨论】:

    • 由于 image1 文件名是 image1.png 和 image2 是 image2.png,如何引用两个图像
    • 如果 user_id 为 1 则输出 '../../assets/images/image1.png'。如果 user_id 为 2,则输出 '../../assets/images/image2.png'
    • 使用'assets/images/image1.png'. 而不是'../../assets/images/image1.png'.
    • 如何在不重新加载页面的情况下更改图像?
    • 在 imageurl 中使用时间戳或日期时间,例如 ``assets/images/image${localStorage.getItem('user_id')}.png?` + new Date().getTime();`
    猜你喜欢
    • 2018-02-04
    • 2021-06-13
    • 1970-01-01
    • 2013-10-10
    • 2018-05-07
    • 2019-02-07
    • 1970-01-01
    • 1970-01-01
    • 2011-06-25
    相关资源
    最近更新 更多