All Projects → buschtoens → ember-render-helpers

buschtoens / ember-render-helpers

Licence: MIT License
Complimentary render template helpers to the render modifiers

Programming Languages

typescript
32286 projects
javascript
184084 projects - #8 most used programming language
HTML
75241 projects
Handlebars
879 projects

Projects that are alternatives of or similar to ember-render-helpers

ember-event-helpers
Complimentary event template helpers to the {{on}} modifier
Stars: ✭ 33 (+73.68%)
Mutual labels:  ember, emberjs, ember-addon, ember-template-helper, ember-helper
ember-on-modifier
Implements the `{{on eventName this.someAction}}` element modifier from https://github.com/emberjs/rfcs/blob/master/text/0471-on-modifier.md
Stars: ✭ 37 (+94.74%)
Mutual labels:  ember, emberjs, ember-addon
glimmer-apollo
Ember and Glimmer integration for Apollo Client.
Stars: ✭ 32 (+68.42%)
Mutual labels:  ember, emberjs, ember-addon
ember-headlessui
gavinjoyce.github.io/ember-headlessui/
Stars: ✭ 76 (+300%)
Mutual labels:  ember, emberjs, ember-addon
Ember Cli Addon Docs
Easy, beautiful docs for your OSS Ember addons
Stars: ✭ 162 (+752.63%)
Mutual labels:  ember, emberjs, ember-addon
ember-emojione
EmojiOne helper and components for your Ember App
Stars: ✭ 16 (-15.79%)
Mutual labels:  ember, ember-addon, ember-helpers
ember-best-language
🏳 A FastBoot-enabled addon to detect the best language for your user.
Stars: ✭ 18 (-5.26%)
Mutual labels:  ember, emberjs, ember-addon
Ember Cli Foundation 6 Sass
Stars: ✭ 65 (+242.11%)
Mutual labels:  ember, emberjs, ember-addon
ember-link
Link primitive to pass around self-contained route references. It's {{link-to}}, but better!
Stars: ✭ 50 (+163.16%)
Mutual labels:  ember, emberjs, ember-addon
ember-gridstack
Ember components to build drag-and-drop multi-column grids powered by gridstack.js
Stars: ✭ 31 (+63.16%)
Mutual labels:  ember, emberjs, ember-addon
ember-changeset-conditional-validations
Conditional validations for ember-changeset-validations
Stars: ✭ 26 (+36.84%)
Mutual labels:  ember, emberjs, ember-addon
ember-credit-card
"make your credit card form dreamy in one line of code"
Stars: ✭ 89 (+368.42%)
Mutual labels:  ember, emberjs, ember-addon
Ember Cli Bundle Analyzer
Analyze the size and contents of your Ember app's bundles
Stars: ✭ 78 (+310.53%)
Mutual labels:  ember, emberjs, ember-addon
ember-cli-string-helpers
Set of the String helpers extracted from DockYard's ember-composable-helpers.
Stars: ✭ 73 (+284.21%)
Mutual labels:  ember, emberjs, ember-addon
Ember Styleguide
This is a UI addon that intends to help standardize the Ember family of websites and make it easier to make the Ember website an Ember app.
Stars: ✭ 69 (+263.16%)
Mutual labels:  ember, emberjs, ember-addon
ember-cli-g-maps
Deprecated Google Maps Addon
Stars: ✭ 58 (+205.26%)
Mutual labels:  ember, emberjs, ember-addon
Ember Accessibility
An EmberJS addon to help identify accessibility violations during development
Stars: ✭ 29 (+52.63%)
Mutual labels:  ember, emberjs, ember-addon
Docfy
Build fully personalized documentation sites; write content and demos in Markdown.
Stars: ✭ 48 (+152.63%)
Mutual labels:  ember, emberjs, ember-addon
ember-foxy-forms
Ember Addon for Making Foxy Forms
Stars: ✭ 27 (+42.11%)
Mutual labels:  ember, emberjs, ember-addon
ember-shadow-dom
Write templates for your components inside of a Shadow DOM root.
Stars: ✭ 26 (+36.84%)
Mutual labels:  ember, emberjs, ember-addon

ember-render-helpers

CI npm version Download Total Ember Observer Score Ember Versions ember-cli Versions code style: prettier dependencies devDependencies

@ember/render-modifiers as template helpers: {{did-insert}}, {{did-update}}, {{will-destroy}}

The original idea came from this Pre-RFC.

Installation

ember install ember-render-helpers

Usage

Example

Clicking the Toggle button will toggle the isVisible flag. When it switches to true, onDidInsert will be called, because the {{did-insert}} helper is inserted. When it switches to false, onWillDestroy will be called, because the {{will-destroy}} helper is removed.

Clicking the Random button will set randomValue to a new random value. Every time this happens, while isVisible is true, onDidUpdate will be called, because one of the parameters passed to the {{did-update}} helper was updated.

Clicking the Random button does not cause {{did-insert}} or {{will-destroy}} to call onDidInsert and onWillDestroy, since these helpers are not triggered by parameter updates.

{{#if this.isVisible}}
  {{did-insert   this.onDidInsert   1 2 3 this.randomValue foo="bar" qux="baz"}}
  {{will-destroy this.onWillDestroy 1 2 3 this.randomValue foo="bar" qux="baz"}}
  {{did-update   this.onDidUpdate   1 2 3 this.randomValue foo="bar" qux="baz"}}
{{/if}}

<button {{on "click" this.toggleVisibility}}>Toggle</button>
<button {{on "click" this.rollTheDice}}>Random</button>
import { action } from '@ember/object';
import Component from '@glimmer/component';
import { tracked } from '@glimmer/tracking';

export default class extends Component {
  @tracked isVisible = false;

  @tracked randomValue?: number;

  @action
  toggleVisibility() {
    this.isVisible = !this.isVisible;
  }

  @action
  rollTheDice() {
    this.randomValue = Math.random();
  }

  @action
  onDidInsert(positional: unknown[], named: Record<string, unknown>) {
    console.log({ positional, named });
    // => { positional: [1, 2, 3, 0.1337...], named: { foo: 'bar', qux: 'baz' } }
  }

  @action
  onWillDestroy(positional: unknown[], named: Record<string, unknown>) {
    console.log({ positional, named });
    // => { positional: [1, 2, 3, 0.1337...], named: { foo: 'bar', qux: 'baz' } }
  }

  @action
  onDidUpdate(positional: unknown[], named: Record<string, unknown>) {
    console.log({ positional, named });
    // => { positional: [1, 2, 3, 0.1337...], named: { foo: 'bar', qux: 'baz' } }
  }
}
Note that the project description data, including the texts, logos, images, and/or trademarks, for each open source project belongs to its rightful owner. If you wish to add or remove any projects, please contact us at [email protected].