X-Select Status Update

Robert DeLuca

August 14, 2015

At The Frontside, we love open source, and maintaining OSS projects is a high priority.

emberx-select has grown in popularity. Even the ember deprecation guide recommends it. We are aiming to keep this component up to date with the latest versions of Ember.

Before Glimmer (1.13) compatibility, we are making a release for Ember 1.12 or below.

What's new in 1.1.3?

  • Title attr bound to an option or select. PR
  • Add optionValuePath PR
  • Fixed blockless form PR
  • Default tabindex to 0 to make it tabable. PR
  • Introduce registerSelectHelper PR
  • Improve test helper PR
  • Improved testing coverage

See the diff here.

Thank you to everyone that has helped by submitting issues and pull requests! 1.1.3 will be the last version released that's compatible with Ember 1.12 or below.

What's new in 2.0?

In x-select 2.0 we dropped support for the blockless form. While it is useful for transitioning from Ember.select, we strongly prefer to standardize writing selects in Ember as in HTML. We no longer bundle x-select with the blockless form. To continue using blockless x-select, use this addon it from x-select.

x-select 2.0 arrays are now immutable. Every user selection creates a new state of the selected content. Previously, multi-selects required updating content as a user interacts with the select component. This was unstable especially with async ember data relationships.

Expect Glimmer/Ember 2.0 compatability in x-select 2.0 thanks to this PR from James Rosen!

Known Glimmer issue with x-select

To use x-select with Glimmer (Ember 1.13.x) requires 1.13.4+. Anything below 1.13.4 will throw

Error: Assertion Failed: x-option component declared without enclosing x-select

because non-dirty component child views are not getting the correct parentView. You can see the related ticket here.

We also applied a small hack to work around form attribute bindings which are broken in Ember 1.12-1.13.2 and fixed in Ember 1.13.3. Ember data bindings are lost, so the parent form should not change. If data bindings are still necessary, call rerender() on the component after the data change.

Once again, thanks to all the contributors that helped make the x-select component better for everyone!

Using x-select-blockless

To use x-select-blockless you'll need to install both x-select-blockless and x-select ember addons. This is because we rely on x-select.

Compatibility Table

x-select Ember
v1.1.4 and before 1.12 or lower
v2.x.x and after 1.13.4 or higher

Subscribe to our DX newsletter

Receive a monthly curation of resources about testing, design systems, CI/CD, and anything that makes developing at scale easier.