2016-03-29 3 views
1

У меня есть список, который выглядит следующим образом:Angular2 - динамическая переменная в HTML

<ul *ngFor="#item of items"> 
<li><img src="http://something.com/[this needs to be item.id]/picture"></li> 
</ul> 

мне нужно URL-адрес изображения, чтобы быть таким идентификатором элемента. Я посмотрел на документацию Src для angular2 (https://angular.io/docs/ts/latest/guide/template-syntax.html) и попытался следующее:

<img [src]="http://something.com/{{item.id}}/picture"> 

, но это не сработало. Как я могу показать изображение на основе идентификатора элемента, который должен быть в URL-адресе.

ответ

6

Используйте свойство связывания с строковых литералов:

<img [src]="'http://something.com/' + item.id + '/picture'"> 

или строка интерполяции свойство связывания с {{}} с:

<img src="http://something.com/{{item.id}}/picture"> 

Обратите внимание, что [src]="http://something.com/{{item.id}}/picture"> не работает, потому что свойство связывания с [] использования синтаксис [property]="template_expression" и template_expression не могут содержать {{}} s.

+0

Я думаю, что 1-й должен соответствовать, как 'ng-src' в Angular 1, где второй может сформировать неправильный URL-адрес, например' http: // something.com // picture', correct? –

+0

Спасибо! Оно работает! И спасибо за объяснение, почему мой подход не сработал! – user2924127

+0

@PankajParkar, ну, обе формы будут генерировать неверные URL-адреса, если 'id' не является свойством' item'. Первая создаст '' http://something.com/undefined/picture ''и вторую,' 'http://something.com//picture''. –

Смежные вопросы