javascript - ¿Cómo hacer push/pop arrays en Ember.js?
sproutcore (2)
Para trabajar con colecciones, Ember.js proporciona una clase de contenedor Array, Ember.Array / Ember.MutableArray
Por lo tanto, en lugar de utilizar una matriz simple, use estos:
// 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}}
Puedo incluir una matriz en un objeto Ember y mostrar el contenido usando Handlebars. Sin embargo, solo puedo reemplazar los contenidos de la matriz usando set (). ¿Cómo puedo modificar los contenidos de la matriz usando push / pop / etc. y todavía tienen la actualización de enlaces UI?
// 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}}
Use una instancia de Ember.ArrayController, simplemente declarar una matriz con [] también creará una matriz de la clase Ember.ArrayController.
Si desea agregar un objeto al final de Ember ArrayController, puede usar el método addObject ();
p.ej.
mutableArray:[],
setModel:function(){
var data1={''id'':1,''name'':''over''};
var data2={''id'':3,''name'':''out''};
this.get(''mutableArray'').addObject(data1);
this.get(''mutableArray'').addObject(data2);
/* To Add Object to middle of array at given index simply use the native array splice method */
var data1={''id'':2,''name'':''and''}
this.get(''mutableArray'').splice(1,0,data1);
return this.get(''mutableArray'')
}.property(''mutableArray'')