javascript - angular 2: koppla sträng med egenskapsbindning


Jag försöker bifoga sträng med egenskapsbindning

till exempel mitt objekt är

{
  "name": "The Walking Dead",
  "imageUrl": "/title/tt1520211/?pf_rd_m=A2FGELUUNOQJNL&pf_rd_p=2240084122&pf_rd_r=1Q5ZRDHSA2ZK5S6Q31WN&pf_rd_s=center-1&pf_rd_t=15506&pf_rd_i=tvmeter&ref_=chttvm_tt_1",
  "rating": "8.6"
},

eftersom jag inte har en bas-URL i imageUrl-fältet vill jag bifoga den i Angular-mallens URL

mall :

<tbody *ngFor="let prod of products">
<tr >
  <td><img [src]="'www.example.com/'+{{prod.imgUrl}}" alt=""></td>
  <td>{{prod.name}}</td>
  <td>{{prod.rating}}</td>
</tr>

</tbody>

Jag försöker lägga till example.com för min ImageUrl i mitt mallfält och jag kan inte lägga till bas-URL

Jag förväntar mig att URL ska vara baseurl+path

www.example.com/title/tt1520211/?pf_rd_m=A2FGELUUNOQJNL&pf_rd_p=2240084122&pf_rd_r=1Q5ZRDHSA2ZK5S6Q31WN&pf_rd_s=center-1&pf_rd_t=15506&pf_rd_i=tvmeter&ref_=chttvm_tt_1

Svar #1

Du behöver inte använda måsvingar. Gör bara enkelt:

<img [src]="'www.example.com/' + prod.imgUrl">
<tag [someAttr]="someValue">

I Angular betyder detta att someValue kommer att utvärderas (precis som inne i {{}}) och tilldelas someAttr, så för strängdelen bör du använda citattecken som i vanlig JS

<tag someAttr="someString">

betyder att someString kommer att tolkas som en mall, (du måste använda {{}} för att utvärdera imgUrl) och tilldelas someAttr

i ditt t.ex. <img src="www.example.com/{{prod.imgUrl}}">

someAttr är en @Input()-egenskap i komponenten, eller en HTMLElement-egenskap,

Svar #2

Prova det så här:

<img src="www.example.com/{{prod.imgUrl}}" alt="">