2013-12-10 8 views
6

Mi chiedevo se fosse possibile aggiungere argomenti a proprietà calcolate. Finora, tutto ciò che ho provato ha provocato errori e non ho trovato nulla sull'argomento. Voglio creare un URL utilizzando un valore che non è incluso nel mio modello.Proprietà calcolate con gli argomenti con il bulbo

Sto cercando qualcosa che sarebbe simile a questa:

// 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}} 

mio server restituisce un'immagine che è ridimensionata. Non voglio inserirlo nel mio database perché questi non hanno un valore fisso.

+3

Mi piacerebbe qualcosa di simile, non credo che si può fare, però, forse 'Ember.Handlebars.helper' sarà la cosa più vicina ad esso. – iConnor

risposta

12

Una proprietà calcolata non deve fare affidamento sui parametri, interrompe il paradigma di memorizzazione nella cache, questo è esattamente ciò che servono per aiutanti e metodi.

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

Problemi correlati