2016-07-12 24 views
11

Giả sử tôi có đoạn mã sau:góc 2 sự thay đổi hình ảnh src thuộc tính

<img [src]="JwtService.characterImage(enemy)" 
     class="{{enemy.status}}" 
    (click)="sidenav.toggle();" style="cursor:pointer"> 

Làm thế nào tôi có thể thay đổi img src asttribute này từ các thành phần của tôi .ts tập tin?

Trả lời

13

Thêm một imgSrc trong thành phần của bạn

class Component { 
constructor(jwtService: JwtService) { 
    this.imgSrc = JwtService.characterImage(enemy); 
} 
} 

<img [src]="imgSrc" 
     class="{{enemy.status}}" 
    (click)="sidenav.toggle();" style="cursor:pointer"> 
+1

tôi đã tự hỏi nếu có cách nào để truy cập vào img 'src' thuộc tính mà không cần khai báo một biến mới – TheUnreal

+0

là nó có thể thay đổi img src sử dụng tài liệu tham khảo về sự kiện thay đổi của nút radio trong Angular2 không .ts tập tin? @Piyush – Vicky

2

Bạn có thể vượt qua một tham chiếu của thẻ bằng $ sự kiện và thay đổi nó là thuộc tính từ mã nguyên cảo của bạn.

<img (click)="functionInTypeScript($event.target)"> 

Hoặc nếu bạn muốn thay đổi điều gì đó trong thẻ hình ảnh về sự kiện khác, bạn có thể làm điều đó như thế này

<img #image> 
<button (click)=functionInTypeScript(image)> 

và sau đó chỉ cần truy cập vào mã nguyên cảo như thế này

functioninTypeScript(image:any) { 
    image.src='path to new image'; 
} 
+1

Điều này không đúng. Với #image bạn nhận được một đối tượng ElementRef, không phải là một truy cập trực tiếp vào đối tượng DOM ... nhưng tất nhiên, ElementRef có một thuộc tính "nativeElement" như một trình truy cập đối tượng DOM. Vì vậy, nó sẽ là: image.nativeElement.src = "đường dẫn đến hình ảnh mới"; – flackjap

+0

Mã này Đã hoạt động đối với tôi –

2

nguyên cảo :

getImage(image: any, time: string) { 
    const t1 = '06:00'; 
    const t2 = '18:00'; 
    if (time >= t1 && time < t2) { 
     return ('/images/morning.png'); 
    } else { 
     return ('/images/evening.png'); 
    } 
    } 

HTML:

<img [src]="getImage(this,bettrainList.departureTime)" width="25"> 
Các vấn đề liên quan