Binding Element Attributes Edit Page
In addition to normal text, you may also want to have your templates contain HTML elements whose attributes are bound to the controller.
For example, imagine your controller has a property that contains a URL to an image:
This generates the following HTML:
1 2 3 |
<div id="logo"> <img src="http://www.example.com/images/logo.png" alt="Logo"> </div> |
If you use data binding with a Boolean value, it will add or remove the specified attribute. For example, given this template:
If isAdministrator
is true
, Handlebars will produce the following
HTML element:
1 |
<input type="checkbox" disabled> |
If isAdministrator
is false
, Handlebars will produce the following:
1 |
<input type="checkbox"> |
Adding Data Attributes
By default, view helpers do not accept data attributes. For example
renders the following HTML:
1 2 3 4 |
<a id="ember239" class="ember-view" href="#/photos">Photos</a> <input id="ember257" class="ember-view ember-text-field" type="text" title="Name"> |
To enable support for data attributes an attribute binding must be
added to the component, e.g.
Ember.LinkComponent
or Ember.TextField
for the specific attribute:
1 2 3 4 5 6 7 |
Ember.LinkComponent.reopen({ attributeBindings: ['data-toggle'] }); Ember.TextField.reopen({ attributeBindings: ['data-toggle', 'data-placement'] }); |
Now the same handlebars code above renders the following HTML:
1 2 3 4 |
<a id="ember240" class="ember-view" href="#/photos" data-toggle="dropdown">Photos</a> <input id="ember259" class="ember-view ember-text-field" type="text" data-toggle="tooltip" data-placement="bottom" title="Name"> |