oss

X-Select Status Update

Aug 14, 2015 · Robert DeLuca

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
  • Blockless improvements [PRs: 1, 2]
  • Default tabindex to 0 to make it tabable. PR
  • Test helper [PRs: 1, 2]
  • 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