/ember-ref-modifier

Ember Ref Modifier

Primary LanguageJavaScriptMIT LicenseMIT

ember-ref-modifier

Greenkeeper badge


Check ember-ref-bucket first!

ember-ref-modifier likely will be deprecated after ember-ref-bucket major release


An implementation of the {{ref}} element modifier. Heavily inspired by ember-on-modifier and @ember/render-modifiers.

Installation

ember install ember-ref-modifier

Compatibility

  • Ember.js v3.13 or above
  • ember-cli v2.13 or above

Usage

<button {{ref this "button"}} data-name="foo">
  Click me baby, one more time!
</button>

{{this.button.dataset.name}} >> "foo"

<button {{ref this.callback}} data-name="foo">
  Click me baby, one more time!
</button>
class Component {
	@action callback(node) {
		this.node = node;
	}
}

<div {{ref this "divContainer" }}></div>
{{#-in-element this.divContainer}}
  Hello!
{{/-in-element}}

// hash helper must return an EmberObject! The default hash helper returns a pojo.
{{#let (hash) as |ctx|}}
	<input id="name-input" {{ref ctx 'inputNode'}}>
	<label for={{ctx.inputNode.id}}> Enter your name </label>
{{/let}}


<button {{ref this "button"}}>
  Click me baby, one more time!
</button>
import Component from '@ember/component';

export default class BritneySpearsComponent extends Component {
  button!: DOMNode
}

This is essentially equivalent to:

didInsertElement() {
  super.didInsertElement();
  this.set('button', this.element.querySelector('button'));
}

It will also re-register property, if any of the passed parameters change.