diff --git a/src/dom_components/model/Component.js b/src/dom_components/model/Component.js index 616f04271..b251d53eb 100644 --- a/src/dom_components/model/Component.js +++ b/src/dom_components/model/Component.js @@ -607,6 +607,20 @@ const Component = Backbone.Model.extend(Styleable).extend( return this; }, + /** + * Get the trait by id/name + * @param {String} id The `id` or `name` of the trait + * @return {Trait} Trait model + * @example + * const traitTitle = component.getTrait('title'); + * traitTitle && traitTitle.set('label', 'New label'); + */ + getTrait(id) { + return this.get('traits').filter(trait => { + return trait.get('id') === id || trait.get('name') === id; + })[0]; + }, + /** * Normalize input classes from array to array of objects * @param {Array} arr