Utilisez la méthode pour récupérer la valeur et la méthode set()
pour mettre à jour la valeur.
hasPermission.get('someProperty');
hasPermission.set('someProperty', 'New value of someProperty');
où someProperty
pourrait définir sur le modèle:
import Model from 'ember-data/model';
import attr from 'ember-data/attr';
export default Model.extend({
someProperty: attr('string');
});
L'utilisation de ces méthodes seront également des propriétés calculées sont recalculées sûr (par défaut, si les valeurs ont changé en fonction dans l'intervalle). Je vous recommande fortement de lire cette section des guides Ember: The Object model.
BTW, personnellement, comme je l'ai passé à ESLint de JSHint et appliqué eslint-plugin-ember, j'utilise get()
et set()
méthodes de Ember namespace. Dans un tel cas, au lieu d'écrire hasPermission.get('data')
, vous écrivez Ember.get(hasPermission, 'data');
. Apporter encore plus loin en matière de lisibilité coder, vous pouvez faire qqch comme ceci:
// your-app/services/your-service.js
// ... imports
const {
get,
inject,
Service,
} = Ember;
export default Service.extend({
store: inject.service(),
someFunction(){
const hasPermission = this.get('store').peekRecord('system/permission','PlatformRead');
console.log(get(hasPermission, 'someProperty'));
},
});
Ce qui suit Stackoverflow thread touche légèrement la différence entre this.get()
et Ember.get()
.