ember-spread

    7.0.2 • Public • Published

    ember-spread

    Dynamic options for dynamic components

    Dependencies

    Ember NPM

    Health

    Travis Coveralls

    Security

    bitHound

    Ember Observer score

    EmberObserver

    Installation

    ember install ember-spread
    

    Details

    A mixin that can be used to spread a property object against the top level of a component. Spread allows a component helper to be used without knowing the properties the target component will require.

    E.g.

    {{component fooComponent
      options=fooOptions
    }}
    

    Those options are then flattened onto the target component and observed as normal attributes on the component. So if fooComponent was my-button and fooOptions was { biz: 'baz' } the above would be the equivalent of:

    {{my-button
      biz='baz'
    }}
    

    Data-driven scenarios will find this particularly useful, since both the component and properties can be retrieved from an external API

    Installation

    • ember install ember-spread

    Demo

    http://ciena-blueplanet.github.io/ember-spread/

    Usage

    Component

    import SpreadMixin from 'ember-spread'
    
    export default Ember.Component.extend(SpreadMixin, {
      ...
    })
    

    Template instance

    {{component-foo
      options=bar
    }}
    
    • The spread function operates based on the init lifecycle hook, so be sure to call this._super(...arguments) if your component also uses that hook
    • Spread only acts on an object hash (the hash helper can be used)
    • options is the default property that will be spread
    • If you need to customize the target property you can set the target using the spreadOptions property, i.e.
    {{component-foo
      baz=bar
      spreadOptions=(hash
        property='baz'
      )
    }}
    

    Keywords

    Install

    npm i ember-spread

    DownloadsWeekly Downloads

    1,422

    Version

    7.0.2

    License

    MIT

    Unpacked Size

    21.7 kB

    Total Files

    11

    Last publish

    Collaborators

    • ciena