35 votes

Comment push/pop tableaux dans Ember.js?

Je peux inclure un tableau dans une Braise de l'objet, et d'afficher le contenu à l'aide de Guidon. Cependant, je ne peux remplacer le contenu du tableau à l'aide de set(). Comment puis-je modifier le contenu du tableau à l'aide de push/pop/etc. et toujours avoir l'INTERFACE utilisateur de liaisons de mise à jour?

// JS
App.obj = Ember.Object.create({
    "things": ["1", "2"],
});
App.obj.set("things", ["1", "2", "3"]); // Works
App.obj.things.push("3"); // Doesn't Work

// HTML + Handlebars
{{#with App.obj}}
    <ul>
    {{#each things}}
        <li>{{this}}</li>
    {{/each}}
    </ul>
{{/with}}

69voto

Michael Siebert Points 1239

Pour travailler avec les collections, Ember.js fournit un Tableau de classe wrapper, de Braise.Tableau / De Braise.MutableArray

Donc, au lieu d'utiliser un simple tableau, l'utilisation de ces:

// JS
App.obj = Ember.Object.create({
    "things": Ember.A(["1", "2"])
});
App.obj.things.pushObject("3"); // pushObject notifies observers

// HTML + Handlebars
{{#with App.obj}}
    <ul>
    {{#each things}}
        <li>{{this}}</li>
    {{/each}}
    </ul>
{{/with}}

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X