3

id新しいDS.Modelレコードを作成し、ストアでcommitを呼び出すと、永続層でレコードがいつ作成され、属性にアクセスできるかを知りたいです。

私はdidCreateコールバックがまさにそれをするだろうと思った。しかし、驚いたことに、それidはまだ呼び出されたundefinedときです。didCreate

だから私の質問は基本的に、私は何か間違ったことをしていて、私のユースケースのためのより良いコールバックがありますか、それともこれはバグですか?

4

1 に答える 1

2

うーん、このテストケースでこれをカバーする必要があるようです。チケットを提出する必要があると思います。

回避策として、これらの行に沿って何かを使用できます。 http://jsfiddle.net/pangratz666/ZkQHE/を参照してください。

App.IdWatcher = Ember.Mixin.create({
    init: function() {
        this._super();
        this.addObserver('data', this, '_dataDidChange');
    },
    _dataDidChange: function() {
        var id = this.get('id');
        if (id) {
            this.idHasBeenDefined(id);
            this.removeObserver('data', this, '_dataDidChange');
        }
    }
});

App.Model = DS.Model.extend(App.IdWatcher, {
    label: DS.attr('string'),

    idHasBeenDefined: function(id) {
        console.log('id is set to %@'.fmt(id));
    }
});
于 2012-04-19T18:00:24.850 に答える