Quantcast
Channel: Ember.JS - Latest topics
Viewing all articles
Browse latest Browse all 4838

View-writable component properties mixin

$
0
0

@barneycarroll wrote:

As view logic increases, the indirection resulting from Handlebars' hatred of logic & the verbosity of Ember's component APIs becomes increasingly cumbersome. I wrote this little factory that accepts a hash of view model properties and returns a mixin that sets a component property and a corresponding setter action of the same name. This has greatly reduced the cognitive overhead of writing stateful components and reduced LOC.

I'd be interested in reactions to this — whether this is useful, pointless, or not-invented-here for Ember types. What do you think?

import Ember from 'ember';

// Pass in a hash of properties to return a mixin that provides properties & corresponding setter actions.
// See README for more.
export default input =>
  Ember.Mixin.create({
    ...input,

    actions : Object.keys( input )
      .reduce( ( actions, key ) =>
        Object.assign( actions, {
          [ key ] : function( input ){
            this.set( key, arguments.length ? input : !this.get( key ) )
          }
        } ),
        {}
      )
  });

Posts: 1

Participants: 1

Read full topic


Viewing all articles
Browse latest Browse all 4838

Trending Articles