2013-12-10 2 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}} 

내 서버의 크기를 조정할 이미지를 반환합니다

I는 다음과 같이 무언가를 찾고 있어요. 이것들은 고정 값이 아니기 때문에 나는 이것을 데이터베이스에 넣고 싶지 않습니다.

+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

관련 문제