2013-08-01 2 views
10

Non riesco a recuperare il ritardo con tutti quei cambiamenti fatti al manubrio semplici e modificati aiutanti Ember manubrio. Se non ricordo male è possibile registrare un aiutante con i seguenti metodiQual è la differenza tra gli helper di Handlebars e gli helper di Handlebars Ember?

  • Ember.Handlebars.helper
  • Ember.Handlebars.registerHelper
  • Ember.Handlebars.registerBoundHelper
  • Handlebars.registerHelper

Questo è troppo per me. Potresti spiegarlo sulla terra, qual è la differenza?

risposta

12

Ember.Handlebars.registerHelper è un aiutante di base che non impegna la stringa di argomento a una proprietà. Ad esempio, considera un helper hello creato con registerHelper che restituisce solo un messaggio di benvenuto.

Ember.Handlebars.registerHelper('hello', function(name) { 
    return 'Hello ' + name; 
}); 

Quando lo si utilizza in un modello,

{{hello name}} 

otterrete il testo del display come, Hello name. Il valore della proprietà è namenon alzò lo sguardo.

Per ottenere il valore della proprietà name nell'helper necessario, registerBoundHelper. Come suggerisce il nome, crea un legame tra la proprietà name. Ogni volta che lo name cambia l'helper viene chiamato di nuovo al rerender. L'implementazione è simile,

Ember.Handlebars.registerBoundHelper('hello', function(name) { 
    return 'Hello ' + name; 
}); 

Il Ember.Handlebars.helper è stessa registerBoundHelper con alcuni controlli aggiuntivi di rilevare automaticamente il tipo di aiuto che si desidera.

La vaniglia Handlebars.registerHelper non viene utilizzato entro Ember. Creerebbe simili helper per i progetti che non utilizzano Ember.

+0

Grazie! Caro Darshan, potresti dare un'occhiata alla mia altra domanda riguardante gli aiutanti? http://stackoverflow.com/questions/18005111/custom-handlebars-helper-parameter-is-not-resolved Ho un problema con un blocco uno. – wryrych

1
  • Ember.Handlebars.helper dovrebbe essere usato per registrare aiutanti, altri metodi sono versioni limitate solo di esso. Ember.Handlebars.helper esegue il rendering HTML con associazioni che mantengono viste e modelli sincronizzati. Funzioni, viste e componenti possono essere forniti come definizioni di aiuto.

  • Ember.Handlebars.registerBoundHelper è come Ember.Handlebars.helper, ma è possibile fornire solo una funzione come definizione di supporto.

  • Ember.Handlebars.registerHelper precedentemente delegato a Handlebars.registerHelper. Ember.Handlebars.registerHelper non esiste più, ma Handlebars.registerHelper è ancora usato internamente da Ember per creare tutti gli aiutanti, dopo gli attacchi sono impostati.