lundi 6 avril 2015

EmberJS: How to check if a component exists (inside another component)?

My goal is to resolve to a generic component is the component doesn't exists. It managed to do it like this:



// app/components/dynamic-widget.js
...
widgetName: function() {
var name = this.get('config.name');
if (!this.container.resolve('component:'+name)) {
name = 'generic-widget';
}
return name;
}.property('config.name')
...


Then in app/templates/components/dynamic-widget.hbs:



{{component widgetName}}


Then, I could use my dynamic-component like this:



{{dynamic-widget 'foo-widget'}}


If foo-widget is not implemented, it fallback into generic-widget.


But since EmberJS 1.11, resolving a component from a component's container is deprecated:



DEPRECATION: resolve should be called on the registry instead of the container


So my question is, how can I check if a component actually exists without using this.container.resolve ?


Thanks a lot.





Aucun commentaire:

Enregistrer un commentaire