Dato questo pezzo di codice HTML:Come posso creare un partial riutilizzabile per il markup duplicato in ember.js?
<div id="email_field" class="control-group">
<label class="control-label" for="account.email">Email</label>
<div id="email_input" class="controls">
<input id="account.email" name="account.email" type="text" placeholder="[email protected]">
<span class="help-block">We just need a valid email address.</span>
</div>
</div>
Come faccio a trasformare questo in un riutilizzabile parziale per qualunque attributo che voglio? IE: email, password, conferma password, ecc.
Assumerei una sorta di gerarchia delle viste ma non ne sono del tutto sicuro.
EDIT: Dopo un ulteriore approfondimento che ho buttato giù {{view}}
e {{render}}
e capito esattamente quello che mi serve:
Voglio: 1. Utilizzare una vista specifica (InputView) 2. Utilizzare un controller specifico (preferibilmente denominato: InputController) ({{view}}
non lo fa penso) 3. Essere in grado di utilizzare questo più volte ({{render}}
non può farlo) 4. Essere in grado di passare in valori ({{render}}
can ' fare questo)
Esempio:
<!-- templates/application.hbs -->
{{foo "input" name="Email" id="account.email" placeholder="[email protected]"}}
// controllers/input.js
Application.InputController = Ember.ObjectController.extend({
type: "text"
});
// views/input.js
Application.InputView = Ember.View.extend({
templateName: "form/input"
});
<!-- templates/form/input.hbs -->
<input {{bindAttr id="id" name="name" type="type" placeholder="placeholder"}}>
Grande risposta, grazie, ma mi chiedo quale controller controlla la vista quando si utilizza bindAttr? Non riesco a capirlo dai documenti. – krainboltgreene
Bene, ogni vista dovrebbe avere accesso a un controller. Per impostazione predefinita, se ci si trova in 'IndexRoute', la vista indice avrà accesso a 'IndexController', e se si inserisce una vista in tale vista indice, tale vista erediterà' IndexController'. Forse questo aiuterà: http://stackoverflow.com/questions/14802223/different-rendering-techniques-in-emberjs-handlebars-template/14802424#14802424 – Wildhoney
Interessante, ma non mi aiuta, immagino? Voglio che questo helper abbia il proprio controller. O più specificamente ho valori calcolati che non voglio collegare a IndexController. – krainboltgreene