How to push/pop arrays in Ember.js?

前端 未结 2 711
误落风尘
误落风尘 2021-02-01 14:39

I can include an array in an Ember object, and display the contents using Handlebars. However, I can only replace the array contents using set(). How can I modify the array cont

相关标签:
2条回答
  • 2021-02-01 15:03

    For working with collections, Ember.js provides an Array wrapper class, Ember.Array / Ember.MutableArray

    So, instead of using a plain array, use these:

    // 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}}
    
    0 讨论(0)
  • 2021-02-01 15:12

    Use an instance of Ember.ArrayController,simply declaring an array with [] will also create array of Ember.ArrayController class.

    If you want to add an Object at the end of Ember ArrayController you can use the addObject() method;

    eg.

    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')
    
    0 讨论(0)
提交回复
热议问题