De nouveaux helpers, de l'héritage, vérifier si un objet est vide, etc.
Ember.js est un framework JavaScript permettant de créer des applications Web ambitieuses !
En utilisant des templates intégrés, vous écrivez considérablement moins de code et vos pages se mettent à jour automatiquement lorsque les données sous-jacentes changent. Il n'est pas nécessaire de réinventer la roue car Ember.js intègre des expressions idiomatiques courantes.
La sortie de la version 1.5.0 amène son lot de nouveautés.
Parmi celles-ci, il y a la possibilité de faire un log des valeurs primitives (chaînes, nombres, etc.) de vos templates (Handlebars). Auparavant, le helper n'acceptait que les propriétés liées.
Du côté des helpers, on découvre des petits nouveaux comme currentRouteName, currentPath, et currentURL pour tester plus aisément le routage et les redirections. Ainsi que triggerEvent pour permettre le déclenchement d'événements arbitraires sur un élément :
Code javascript : | Sélectionner tout |
triggerEvent('#some-element-id', 'dblclick');
Puis il y a une petite amélioration sur Ember.computed.oneWay. Effectivement, il était généralement accompagné d'un readOnly. Maintenant, les deux peuvent être faits en une seule opération :
Code javascript : | Sélectionner tout |
1 2 3 4 5 | // Avant Ember.computed.oneWay('foo').readOnly() // Maintenant Ember.computed.readOnly('foo') |
Par la même occasion, on apprécie l'apparition d'une fonction permettant de vérifier si un objet est vide. C'est Ember.isBlank(); :
Code javascript : | Sélectionner tout |
1 2 3 4 5 6 7 8 9 10 11 | Ember.isBlank(); // true Ember.isBlank(null); // true Ember.isBlank(undefined); // true Ember.isBlank(''); // true Ember.isBlank([]); // true Ember.isBlank('\n\t'); // true Ember.isBlank(' '); // true Ember.isBlank({}); // false Ember.isBlank('\n\t Hello'); // false Ember.isBlank('Hello world'); // false Ember.isBlank([1,2,3]); // false |
Dans les versions précédentes, l'URL dans la barre d'adresse se mettait à jour uniquement à la fin de la transition. Dès à présent, la mise à jour de l'URL arrive immédiatement à moins que la transition soit abandonnée / redirigée.
Il y a également une nouvelle valeur auto pour l'option location pour l'application Router qui choisira la meilleure option de localisation basée sur la prise en charge de navigateur avec l'ordre de priorité suivant : history, hash et puis none.
On parle aussi d'héritage de modèle de la route parente. Par exemple :
Code javascript : | Sélectionner tout |
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 | App.Router.map(function(){ this.resource('post', function(){ this.route('edit'); }); }); App.PostRoute = Ember.Route.extend({ model: function(){ return {title: 'ZOMG', text: 'AWESOME'}; } }); App.PostEditRoute = Ember.Route.extend({ model: function(){ return this.modelFor('post'); } }); |
Vous n'avez plus à définir le model pour PostEditRoute car l'implémentation par défaut consiste à utiliser le modèle de routes du parent.
Vous trouverez la liste complète des nouveautés et corrections ici.
C'est également l'occasion pour l'équipe d'annoncer la sortie de la version bêta 1.6.0.
Télécharger.
L'annonce officielle.
La documentation.