Intégration avec d'autres bibliothèques, gestion helper, attributs et propriétés améliorés
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.4.0 s'inscrit dans le cycle de publication « en six semaines » annoncé par l'équipe.
Parmi les nouveautés, il y a l'amélioration de la gestion des propriétés via l'utilisation des accolades. Par exemple, le code .property('baz.foo', 'baz.bar') peut s'écrire .property('baz.{foo,bar}') évitant ainsi la redondance et la duplication.
On découvre également une méthode utile lors de l'intégration avec des bibliothèques autres qu'Ember qui fournissent des callbacks asynchrones : Ember.run.bind. Effectivement, Ember utilise une boucle d'exécution pour fusionner les modifications. Cela fonctionne en marquant le début et la fin de l'exécution de code Ember. Ce qui est plus complexe lorsque que du code JavaScript autre qu'Ember entre en jeu.
On pourrait par exemple avoir ce code :
Code javascript : | Sélectionner tout |
1 2 3 4 5 6 | var that = this; jQuery(window).on('resize', function(){ Ember.run(function(){ that.handleResize(); }); }); |
Grâce à cette nouvelle méthode, nous obtenons le code :
Code javascript : | Sélectionner tout |
jQuery(window).on('resize', Ember.run.bind(this, this.handleResize));
Le helper {{with}} (ensemble de fonctions réunies par thème) accepte une option controller qui crée et utilise une instance du contrôleur indiqué avec le nouveau contexte en tant que contenu. Ce qui offre un moyen très élégant de manipuler le contexte avec des fonctions/propriétés personnalisées. Cela rappelle le fonctionnement de itemController avec le helper {{each}}.
Code javascript : | Sélectionner tout |
1 2 3 | {{#with users.posts controller='userBlogPosts'}} {{!- Le contexte actuel est enveloppé dans une instance du contrôleur userBlogPosts. }} {{/with}} |
De leur côté, les attributs liés sont mieux gérés. Toutes les liaisons qui n'existent pas au moment du premier affichage de la vue ne sont pas configurées selon un observer (cela évite donc un souci de performance). Lorsque l'attribut est défini par après sur la vue, un observer est alors configuré à ce moment-là. Cela signifie que des observers sont créés uniquement pour les propriétés réelles, qui sont présentes. Toutefois, nous pouvons énumérer chaque attribut HTML valide dans la propriété attributeBindings. Donc vous pouvez les utiliser sans avoir à rouvrir des classes internes.
Notez que vous pouvez utiliser les attributs HTML5 avec les éléments {{input type="text"}}, {{textarea}}, et {{checkbox}}.
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.5.0.
Télécharger.
L'annonce officielle.
La documentation.