Tôi đang chuyển một ứng dụng cũ để sử dụng backbone.js (hy vọng) Vấn đề là không có đối tượng nào trong hệ thống sử dụng 'id' cho id - mỗi đối tượng khác nhau . Đọc xung quanh, tôi đã đưa ra giải pháp dưới đây khi khởi tạo Backbone.Model.Xương sống - sử dụng tên trường khác cho id
initialize: function(){
this.idAttribute = 'user_ID';
this.set({'id':this.get('user_ID')});
}
Tôi lo lắng rằng khi tôi phát triển với xương sống, phương pháp này sẽ khiến tôi khó chịu. Có ai có kinh nghiệm với điều này không. Bất kỳ con trỏ nào được đánh giá cao.
chỉnh sửa: Tôi vừa gọi isNew() trên mô hình và nhận được sự thật, mặc dù id hiện được đặt thành 1. //////////////////// ///////////////////////
Sử dụng phần sau có vẻ như sắp xếp.
User = Backbone.Model.extend({
idAttribute : 'user_ID'
})
đánh giá cao này - nhờ. – Chin
Chỉ cần vấp khi điều này khi tôi hỏi bản thân mình câu hỏi Nếu nên sử dụng id hậu tố như "id_user" thay vì "id" trong lược đồ cơ sở dữ liệu quan hệ của tôi cho một dự án xương sống. Tôi đã thuyết phục rằng nó tốt hơn để sử dụng chúng theo [this] (http://stackoverflow.com/a/1369773/2236166), sau đó tôi nghĩ "Doh, nhưng các lĩnh vực id cho các mô hình xương sống ...", cho đến khi tôi đọc phần Hỏi & đáp này. Cảm ơn! –
Một chút hiển nhiên nhưng không sử dụng .get ('id') trừ khi bạn muốn giá trị id ban đầu (nếu bạn có). Luôn sử dụng 'model.id'. – backdesk