Tôi đang trong quá trình tích hợp Backbone và Backbone.Marionette vào một dự án ứng dụng web hiện có. Chúng tôi có kế hoạch để lại tất cả các chức năng hiện có trong dự án một mình cho bây giờ nhưng bất kỳ chức năng mới, chúng tôi sẽ tận dụng lợi thế của Backbone cơ cấu và Marionette hiệu trưởng. Một trong những thứ tự đầu tiên của doanh nghiệp là quyết định thư viện biểu mẫu HTML cũng như giải pháp ràng buộc dữ liệu cho các mẫu này. Trước đây, chúng tôi đã sử dụng JsRender và JsViews cho tất cả các nhu cầu khuôn mẫu của chúng tôi và ràng buộc dữ liệu nhưng chúng tôi sẵn sàng khám phá những con đường mới cho chức năng mới của chúng tôi. Vì vậy, về cơ bản tôi đã nghiên cứu các giải pháp khác nhau và bây giờ cần một số lời khuyên hoặc suy nghĩ về những gì để lựa chọn. Dưới đây là những gì tôi đã xem xét cho đến nay:Xương sống: Mô hình-to-mẫu và mẫu-to-mô hình ràng buộc
Ưu điểm: Có vẻ làm theo ý tưởng Backbone của tách trên mối quan tâm giúp giữ các mẫu của bạn rất "sạch".
Nhược điểm: Có vẻ như bạn phải viết thêm một chút mã trong chế độ xem của mình để xác định các ràng buộc. Ngoài ra, dường như thiếu khả năng hiển thị có điều kiện, do đó bạn phải luôn hiển thị mẫu đầy đủ và chỉ cần chuyển đổi hiển thị các phần tử nhất định.
Ưu điểm: Xử lý hơn một chút dữ liệu tùy chọn bên trong mẫu ràng buộc mà không làm cho nó quá lộn xộn.
Nhược điểm: Ngoài ra, có vẻ như thiếu hiển thị có điều kiện.
Ưu điểm: Xử lý tất cả các loại dữ liệu ràng buộc nhu cầu thông qua các thuộc tính.
Nhược điểm: Dễ bắt đầu "làm bẩn" mẫu bằng trình chuyển đổi. Phải thêm một bước khác để tạo ra các kiểu xem Knockout từ các mô hình Backbone.
Ưu điểm: Tương tự như khả năng Knockout nhưng với cú pháp khác nhau. Xử lý hiển thị có điều kiện.
Nhược điểm: Trong quá khứ, chúng tôi đã làm bẩn các mẫu của chúng tôi bằng cách thêm quá nhiều logic nghiệp vụ vào mẫu nhưng đó có thể là vấn đề với sự phát triển của chúng tôi mà chúng tôi có thể sửa. Cần tạo chức năng để kết nối chức năng quan sát JsViews với các sự kiện mô hình Backbone. Các thư viện khác như StickIt và Knockback sẽ tự động xử lý.
Chúng tôi cũng xem xét Backbone.ModelBinder nằm ở đâu đó giữa StickIt và Rivets.
Mọi người có thể chia sẻ bất kỳ quyết định nào họ đã đưa ra và lý do họ chọn một plugin/thư viện khác không? Tôi cũng mở các đề xuất khác. Cảm ơn.
Tôi đã kiểm tra dấu gạch dưới (hài hước mà tôi chưa xem xét nó được bao gồm như bạn đã đề cập). Tôi cảm thấy chúng tôi có thể có cùng một vấn đề với mẫu "spaghetti". Mối quan tâm chính là chúng tôi có một số nhà phát triển làm việc trên các mẫu và chúng tôi bắt đầu đan xen quá nhiều cú pháp logic và mẫu vào HTML. Vì vậy, để buộc chúng tôi từ bỏ thói quen đó, chúng tôi đã chọn để đi với Backbone.Stickit. Dường như nó sẽ mất một thời gian để làm quen với việc tạo ra các ràng buộc bên ngoài khuôn mẫu nhưng hy vọng chúng ta sẽ được hưởng lợi từ sự "sạch sẽ" của HTML của chúng ta. Cảm ơn vì đầu vào của bạn. –