2013-12-10 13 views
6

計算されたプロパティに引数を追加することが可能かどうかは疑問でした。これまでのところ、私が試したすべてがエラーになり、その件に関して何も見つかりませんでした。私は自分のモデルに含まれていない値を使ってURLを構築したい。Emberは引数を使ってプロパティを計算しました

私はこのようになります何かを探しています:

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

私のサーバーがリサイズされた画像を返します。これらは固定値ではないので、私はデータベースに入れたくありません。

+3

私はこのような何かを大好きだ、私はあなたが多分 'Ember.Handlebars.helper'がそれに近いものになるだろう、しかしそれを行うことができるとは思いません。 – iConnor

答えて

12

計算されたプロパティはパラメータに依存すべきではありません。キャッシングのパラダイムが壊れています。それはまさにヘルパーとメソッドの目的です。

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

関連する問題