2013-01-21 17 views

cevap

13

: yardımcın kaçtığını istemediğiniz HTML dönerse

, yeni Handlebars.SafeString dönmek emin olun.

Yani yardımcı ardından, tam oluşmuş <img> elemanı iade HTML dizesi oluşturmak ve bunu sarmak istiyorsanız Handlebars.SafeString:

Ember.Handlebars.registerHelper 'avatarImg', (property, options) -> 
    # Build your <img> HTML string and leave it in result ... 
    new Handlebars.SafeString(result) 

ve sonra şablonda sahip olmak gerekir :

blah blah {{avatarImg ...}} blah blah 

ve {{avatarImg ...}} dışına bir <img> olsun.

+0

Eğer kimse merak ediyorsa, çıkış fonksiyonu 'Handlebars.Utils.escapeExpression' olarak adlandırılır. – Kaworu

2

Bu görüntü etiketini temsil eden bir görünüm oluşturabilir ve ardından özel yardımcınızın içinden yardımcısını görüntüleyen gidonları görüntüleyebilirsiniz. Burada çalışma örneği gönderdiniz

App.AvatarView = Ember.View.extend({ 
    tagName: 'img', 
    attributeBindings: ['src'] 
}); 

Ember.Handlebars.registerHelper('avatarUrl', function(property, options) { 
    var small_url, value; 
    value = Ember.get(this, 'avatarUrl'); 
    if (value) { 
    small_url = value.small_url; 
    } 
    var hash = options.hash; 
    hash.src = small_url || '/images/fallback/small_default.png'; 

    Ember.Handlebars.helpers.view.call(this, App.AvatarView, options); 

}); 

: Örneğin http://jsbin.com/adewot/1/edit

Bu şekilde Ember kendi linkTo yardımcı işlerin dayanmaktadır. Daha gelişmiş bir örnek görmek için şu kaynağa göz atın: https://github.com/emberjs/ember.js/blob/master/packages/ember-routing/lib/helpers/link_to.js#L83