2013-12-10 26 views
6

Hesaplanmış özelliklere argüman eklemenin mümkün olup olmadığını merak ediyordum. Şimdiye kadar, denediğim her şey hatalarla sonuçlandı ve konuyla ilgili hiçbir şey bulamadı. Modelimde bulunmayan bir değeri kullanarak bir URL oluşturmak istiyorum.Bağımsız değişkenler ile birlikte hesaplanmış özellikler

// App.js 
App.Image = DS.Model.extend({ 
    image_path_sh: DS.attr(), // image.jpg 
    image_size_nm: DS.attr(), // 234234 
    image_alt_sh: DS.attr(), // My image 
    image_abs_url: function(width, height) { 
     return "http://localhost/images/" + this.get('image_path_sh') + "/" + width "x" + height 
    }.property('image_path_sh') 
}); 

// index.html 
// I know this doesn't work, but I'd like to have something that easy to use 
{{#each image}} 
    <img src="{{image_abs_url 250 250}}" alt="{{image_alt_sh}}" /> 
{{/each}} 

Sunucum boyutlandırılır bir resim döndürür:

Ben şuna benzer bir şey arıyorum. Bunu veritabanımın içine koymak istemiyorum çünkü bunlar sabit bir değer değil.

+3

böyle bir şey isterim, ben belki 'Ember.Handlebars.helper' kendisine en yakın şey olacaktır, gerçi bunu yapabileceğimi sanmıyorum. – iConnor

cevap

12

Hesaplanan özellik parametrelere güvenmemeli, önbellek paradigmasını kırar, bu tam olarak hangi yardımcıların ve yöntemlerin kullanılacağıdır.

Ember.Handlebars.helper('img', function(prop, height, width, options) { 
    return new Handlebars.SafeString('<div style="height:' + height +'px;width:'+ width +'px;background-color:' + prop + '">' + prop + '</div>'); 
}); 

http://emberjs.jsbin.com/IgUFaTAk/1/edit

İlgili konular