Ember.js 余烬视图';视图和x27之间共享的s属性;什么样的例子?

Ember.js 余烬视图';视图和x27之间共享的s属性;什么样的例子?,ember.js,Ember.js,我有一个看法: App.PhotoUploadView = Ember.View.extend({ images: [], didInsertElement: function() { var that = this; var product = this.get('controller').get('model'); var upimages = product.get('upimages'); //this.set('images', [])

我有一个看法:

App.PhotoUploadView = Ember.View.extend({
    images: [],
    didInsertElement: function() {
    var that = this;
    var product = this.get('controller').get('model');
    var upimages = product.get('upimages');

    //this.set('images', []);

    upimages.then(function(images) {
        images.forEach(function(image, indexI) {
            var imageObject = new Object();

            imageObject.link = App.appConf.apiPaths.images + image.get('link');
            that.get('images').pushObject(imageObject);
        });
        console.log(that.get('images'))
    });
    }
});
所以我在这里做的是定义一个最初为空的images数组,并用通过操纵模型的子对象获得的对象填充它

{{#each product in model}}
    {{view App.PhotoUploadView}}
{{/each}}
在应用程序中,我同时插入了许多PhotoUploadView;问题是,不是每个PhotoUploadView实例都有一个不同的images数组,而是每个实例都有一个包含所有图像的images数组,就像在实例之间共享该数组一样


如果我删除对此.set的注释('images',[]);在didInsertElement函数中,一切都可以工作;所以问题是:图像数组在PhotoUploadView实例之间共享?或者我遗漏了什么…?

余烬将其视为一个静态属性,它适用于该视图的所有实例。如果您预先将其设置为未定义,那么在init上定义它(或者在需要时定义),它应该可以解决问题

App.PhotoUploadView = Ember.View.extend({
    init: function(){
       this._super();
       this.set('images', []);
    }
    images: undefined,
    didInsertElement: function() {
    var that = this;
    var product = this.get('controller').get('model');
    var upimages = product.get('upimages');

    //this.set('images', []);

    upimages.then(function(images) {
        images.forEach(function(image, indexI) {
            var imageObject = new Object();

            imageObject.link = App.appConf.apiPaths.images + image.get('link');
            that.get('images').pushObject(imageObject);
        });
        console.log(that.get('images'))
    });
    }
});