2013-03-25 12 views
9

image_id özelliğine sahip bir Modelim var. Bir görüntü öğesi içeren bu Model için bir Görünümüm var.Model Özelliklerini bir Img Öğesi URL'sine Ekleme URL'sine ekleme

<img src="news{{newsImageURL newsItem.imageID}}.jpg"></img> 

:

<img src="news + newsItem.imageID + .jpg"></img> 

Benim ilk girişimi bir Gidon yardımcı kullandı: Ben etkin bir yapıyorum böylece resmin URL'sini tamamlamak için görüntü öğesinin src mülkiyet içine id eklemek gerekir Ama etrafında bu da takılı Metamprph komut etiketler: Ben image_id değerini dönüştürmek gerekir ancak Yani ben bindAttr kullanarak baktım

<img url="&lt;script id='metamorph-10-start' type='text/x-placeholder'&gt;&lt;/script&gt;news/7.jpg&lt;script id='metamorph-10-end' type='text/x-placeholder'&gt;&lt;/script&gt;" alt="" class="content-image news-media" /></a> 

, (yolun geri kalanını hazırlayarak ve ekleyerek), bu da bir çözüm gibi görünmüyor.

cevap

16

2 olasılık vardır.

Şablon:

// until 1.0 RC7 
<img {{bindAttr src="newsItem.imagePath"}}></img> 
// from 1.0 final (the above one is deprecated) 
<img {{bind-attr src=newsItem.imagePath}}></img> 

Model:

App.NewsItem = DS.Model.extend({ 
    imageID: DS.attr('string'), 
    imagePath: function() { 
    return "/assets/news/"+this.get("imageID")+".jpg"; 
    }.property('imageID') 
}); 

2- Eğer böyle yapmazsanız, sen Bu şablonu destek sizin ObjectController da ilan verebilir 1'de bağlayıcıya gerek yok (kodunuzun değişmeyeceğini tahmin ediyorum) ve

+3

1.0.0 kullanıcıları için not: şimdi yazmalısınız: {{bind-attr src = newsItem.imagePath}} '. –

+0

İyi ipucu. Buna göre güncelledim :-) – mavilein

+0

Tırnaklardan ayrıldınız (ayrıca kullanımdan kaldırılmış). Bkz. Http://emberjs.com/blog/2013/08/29/ember-1-0-rc8.html (Sınırlı Yardımcılar). –

1

bindAttr referansını hesaplanmış bir özellik haline getirebilir ve orada dizginizi oluşturabilirsiniz.

1- modeliniz üzerinde bilgisayarlı özelliği olarak görüntü yolunu bildirin: