0

カスタム属性(オブジェクトの配列)を持つモデルがあります。このような

App.Adapter.registerTransform('images', {
    serialize: function(value) {
        var ret = []
        value.forEach(function(img){
            ret.pushObject(img.get('uuid'))
        })
        if (ret.get('length')) {
            return ret.join(',')
        } else 
        return false
    },
    deserialize: function(value) {
        ret = []     
        if (typeof value !== 'undefined') {
            uuids = value.split(',')
            for (var i = 0; i < uuids.length; i++) {
                var id = uuids[i]
                ret.pushObject( App.Image.create({'uuid': id}) )
            }
        }
        return ret
    }
})

そして私のモデル。

App.Item = DS.Model.extend({
    …
    images:         DS.attr('images')
})

コントローラーでは、このプロパティの変更をプッシュした後、コミット データが必要です。この場合、私は何をする必要がありますか?

uploadImage: function(){
    var self = this

    uploading.done(function(result) {
            self.get('images').pushObject(App.Image.create({uuid:result.uuid}))
            console.log(self.get('isDirty')) // false
            self.get('store').commit() //nothing to change
    }).fail(function(result) {
     …
    }).always(function() {
     …
    })
},
4

1 に答える 1

0

これをやろうとしましたか?

self.notifyPropertyChange('images');
于 2013-05-14T10:12:09.547 に答える