DEV Community

Gonçalo Morais
Gonçalo Morais

Posted on • Originally published at blog.gnclmorais.com on

2

`this.something = ‘else’` vs `this.set(‘something’, ‘else’)` in Ember

I’ve been getting deeper into Ember.js in my new job, and I learn something new every day. Sometimes, things you’ve been using here and there are a bit mysterious. Eventually, either you or someone else notices them and raises insightful questions, like Michal asked on Ember’s Discord channel. The question was basically this:

What’s the difference between this.something = 'else' and this.set('something', 'else') in tests?

The answer is surprisingly simple (at the surface, we don’t need to get deep into Ember’s reactivity): this.set is the way you have to trigger re-render in test. For example, if you set a value with this.value = 'test' and render a component that will use that this.value, changing the value of this.value now will not re-render the partial. If, instead, you set that value with this.set('value', 'test'), whenever you change it again with this.set('value', 'something else'), the template will automatically re-render.

Small caveat (like everything in like): re-rendering will only occur if the value you are reassigning is different that the value previously there, as it seems.

Image of Timescale

🚀 pgai Vectorizer: SQLAlchemy and LiteLLM Make Vector Search Simple

We built pgai Vectorizer to simplify embedding management for AI applications—without needing a separate database or complex infrastructure. Since launch, developers have created over 3,000 vectorizers on Timescale Cloud, with many more self-hosted.

Read full post →

Top comments (1)

Collapse
 
pernambucano profile image
Paulo Fernandes

That was enlightening indeed! Thanks for posting this!

Image of Timescale

🚀 pgai Vectorizer: SQLAlchemy and LiteLLM Make Vector Search Simple

We built pgai Vectorizer to simplify embedding management for AI applications—without needing a separate database or complex infrastructure. Since launch, developers have created over 3,000 vectorizers on Timescale Cloud, with many more self-hosted.

Read more