2011-01-13 11 views
0

でcreateRecordをトリガません:新しいオブジェクトは、私が持っている私のレスポンダーでは、データソース

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); 
    } 
} 

私はデータソース夢中にアップしていた、と私は地元の使っていた前に、すべてが働きました。 submitをクリックすると、新しいオブジェクトは作成されず、createRecordは呼び出されません。

答えて

1

可能な問題は、すぐに.destroy()を呼び出すことです。これは問題ではありませんが、あなたが言ったように、(同期している)治具を使っている間はそれは働いていました。 dataSource(通常は非同期です)を使用しているので、中断されている可能性があります。 .destory()を削除して問題が解決するかどうか確認してください。

もう1つの方法として、ネストされたストアにバグが存在する可能性があります。既存のレコードを編集するのではなく新しいレコードを作成すると、 'did it change'テストが失敗する可能性がありますそれをコンパイルすることは何もないので)、commitChanges(YES)を呼び出すと、チェックなしで強制的にコミットされます。

+0

「Spanish.store.commitRecords();」を追加するそれがうまくいった! – LDK

関連する問題