Sử dụng Backbone.js Tôi biết bạn nên đặt thuộc tính của mô hình bằng phương pháp set và KHÔNG bằng cách sửa đổi trực tiếp attributes internal hash.backbone.js đặt thuộc tính nội bộ mô hình băm trực tiếp
Tuy nhiên, ngoài việc không tự động kích hoạt sự kiện "thay đổi", những điểm khác hoặc "tác dụng phụ" có trong việc sửa đổi băm nội bộ trực tiếp?
Vấn đề tôi đang gặp phải là trong khi phương thức thiết lập lấy một đối tượng theo nghĩa đen, tôi cần phải chỉ định phía bên tay trái sử dụng một biến được xác định tại thời gian chạy. Cảm ơn.
myModel.set({
myProperty : myValue; //myProperty is a variable, so this is invalid syntax
})
//vs
myModel.attributes[myProperty] = myValue; //myProperty is a variable that can be evaluated
Tôi nghĩ giải pháp của bạn thật tuyệt vời. Hàm này sẽ được hợp nhất thành các bản phát hành Backbone mới hơn! Cảm ơn bạn cũng đã chỉ ra mã nguồn được chú thích; bạn nói đúng tôi nên nhìn nó ngay từ đầu. – fortuneRice
đẹp! Tôi đã viết mã này một chục lần và không bao giờ nghĩ để làm cho nó một phương pháp. :) btw: không cần sử dụng _.extend cho việc này. 'Backbone.Model.prototype.setByName = function (...) {...}' thực hiện điều tương tự ... chức năng giống nhau. chỉ là một cách khác để làm điều đó. –
@Derick Bailey: Buồn cười ... Tôi nghĩ rằng '_.extend' có thêm một số khéo léo để mở rộng nguyên mẫu ... không. Nó thực sự là để mở rộng bất kỳ đối tượng nào với một tập hợp các thay đổi. Không có gì điên rồ ở đó. Thay đổi câu trả lời của tôi để thừa nhận điều đó. Cảm ơn. –