Saya mencoba Backbone.js, dan salah satu hal yang saya coba adalah membuat panggilan ke API jarak jauh, jadi saya harus dapat mengesampingkan Backbone.sync, karena saya memahami dokumentasi .
Tidak ada contoh bagaimana melakukannya dalam dokumentasi itu sendiri, dan tampaknya tidak ada grup google untuk Backbone ... bisakah seseorang menunjukkan contoh untuk melakukan ini?
javascript
backbone.js
picardo
sumber
sumber
Jawaban:
Lihatlah contoh sumber beranotasi ini di mana mereka menimpa
Backbone.sync
dengan alternatif penyimpanan lokalbackbone-localStorage
Pada dasarnya Backbone.sync adalah fungsi yang membutuhkan 4 argumen:
Anda perlu memecat salah satu
options.success
atauoptions.error
tergantung pada apakahmethod
berhasil. Metode dalam format:"create"
: diharapkan Anda membuat model di server"read"
: diharapkan Anda membaca model ini dari server dan mengembalikannya"update"
: diharapkan Anda memperbarui model di server dengan argumen"delete"
: diharapkan Anda menghapus model dari server.Anda perlu menerapkan 4 metode dan menentukan apa pun yang Anda inginkan untuk Anda
"server"
Tentu ini hanya hal-hal yang
Backbone.sync
harus diimplementasikan. Anda dapat menerapkan lebih banyakmethods
dan Anda dapat memberikan lebih banyak paramater kembalisuccess
tetapi yang terbaik adalah tidak melakukannya.Yang terbaik untuk memastikan itu melakukan hal yang sama seperti yang
Backbone.sync
dilakukan saat ini sehingga pemrograman Anda ke antarmuka daripada implementasi. Jika Anda ingin mengganti yang dimodifikasiBackbone.sync
untuk mengatakan penyimpanan lokal, Anda tidak perlu memperpanjang sendiri untuk mencocokkan Backbone Anda yang diperluas. "[Sunting]
Perhatikan juga bahwa Anda dapat menggunakan beberapa implementasi dari
sync
. Setiap referensi untukBackbone.sync
actaully(this.sync || Backbone.sync)
sehingga Anda hanya perlu melakukan sesuatu seperti:Backbone.sync
hanyalah standar global yang digunakan semua model kecuali model memilikisync
metode yang ditetapkan secara khusus.sumber
(this.sync || Backbone.sync)
Lihat edit. Kiat selanjutnya adalah membaca sumber tulang punggung beranotasi. Semuanya ada di sana!sync
dari mana saja dalam kode Anda (biasanya overryddensync
), lakukan sajaBackbone.sync.call(this, method, this, options)
.Saya tahu jawaban ini agak terlambat, dan jawaban dari @Raynos hebat, tapi saya melakukannya sedikit berbeda, dan mungkin itu akan berguna bagi Anda atau orang lain yang mencoba menggunakan API dengan Backbone.
Alih-alih mengesampingkan Backbone.sync, saya mengesampingkan Backbone.ajax , karena di situlah permintaan ajax dibuat.
Ini sebuah contoh:
sumber
Saya biasanya perlu mengganti
sync
metode backbone ketika saya hanya perlu menyinkronkan atribut tertentu. Implementasi yang khas terlihat seperti ini:sumber
Backbone.sync.apply(this, arguments);
? Ini sedikit lebih fleksibel jika Anda, misalnya, memutuskan untuk tidak menggunakan argumen "opsi" dalam versi yang digantisync
.Backbone.model.save(attributes, {patch: true})
untuk melakukan pembaruan parsial sekarang