From ba075e43de2e1b5be4a43223116b3ed69a587437 Mon Sep 17 00:00:00 2001 From: Aleksander Nowodzinski Date: Wed, 8 Mar 2017 16:39:56 +0100 Subject: [PATCH] Enable styling via class attribute in ListItemView. --- src/list/listitemview.js | 10 +++++++++- tests/list/listitemview.js | 10 ++++++++++ 2 files changed, 19 insertions(+), 1 deletion(-) diff --git a/src/list/listitemview.js b/src/list/listitemview.js index 198b4e0f..d72e5da4 100644 --- a/src/list/listitemview.js +++ b/src/list/listitemview.js @@ -38,7 +38,8 @@ export default class ListItemView extends View { attributes: { class: [ - 'ck-list__item' + 'ck-list__item', + bind.to( 'class' ) ], style: bind.to( 'style' ), tabindex: bind.to( 'tabindex' ) @@ -69,6 +70,13 @@ export default class ListItemView extends View { * @member {String} #style */ + /** + * (Optional) The additional class set on the {@link #element}. + * + * @observable + * @member {String} #class + */ + /** * Fired when the list item has been clicked. * diff --git a/tests/list/listitemview.js b/tests/list/listitemview.js index 367fe24b..b7d413cb 100644 --- a/tests/list/listitemview.js +++ b/tests/list/listitemview.js @@ -27,6 +27,16 @@ describe( 'ListItemView', () => { } ); describe( 'DOM bindings', () => { + describe( '"class" attribute', () => { + it( 'reacts on view#class', () => { + expect( view.element.classList ).to.have.length( 1 ); + + view.set( 'class', 'foo' ); + + expect( view.element.classList.contains( 'foo' ) ).to.be.true; + } ); + } ); + describe( '"style" attribute', () => { it( 'reacts on view#style', () => { expect( view.element.attributes.getNamedItem( 'style' ).value ).to.equal( 'foo' );