开发者

New Object not triggering createRecord in DataSource

In my responder I have:

Spanish.ADDWORD = SC.Responder.create({

  didBecomeFirstResponder: function(responder) {
    var store = this._store = Spanish.store.chain(); //buffer changes
    var word = store.createRecord(Spanish.Word, {word: "", english: ""});
    Spanish.addWordController.set("content",word);

    //show the dialog
    var pane = Spanish.getPath('addWordPage.mainPane');
    pane.append();
    pane.makeFirstResponder();
  },      

  submit: function(){
    this._store.commitChanges().destroy();
    Spanish.makeFirstResponder(Spanish.READY开发者_StackOverflow社区);
  }
}

Before I had the DataSource hooked-up, and I was using local, everything worked. When I click submit now no new object is created and createRecord is not being called.


A possible problem is that you are calling .destroy() immediately. This shouldn't be an issue, but as you said it was working while using fixtures (which are synchronous). Now that you are using a dataSource (which is usually asynchronous), it may be getting interrupted. Try removing the .destory(), and see if that resolves your issue.

Another option to try, is that there may be a bug in the nested store, in that if you create a new record (rather than edit an existing one), the 'did it change' test may fail (as there is nothing to compair it too), so calling commitChanges(YES) will force a commit, without the check.

0

上一篇:

下一篇:

精彩评论

暂无评论...
验证码 换一张
取 消

最新问答

问答排行榜