2012-06-27 8 views
5

Tôi đã xem AngularJS và Backbone.JS cả hai đều giống như các khung công tác tuyệt vời, tuy nhiên cơ sở mã hiện tại của tôi không sử dụng mẫu MVC. Cả hai khung công tác đó buộc bạn phải bắt đầu từ đầu hoặc cấu trúc lại toàn bộ cơ sở mã của bạn để theo mẫu MVC.Tìm kiếm một khung công tác javascript cung cấp khuôn mẫu và ràng buộc dữ liệu không phải là MVC

Hầu như tất cả dữ liệu của tôi là đối tượng tùy chỉnh với nhiều myobject.prototype.myfunction = ... sau đó được tuần tự hóa/từ JSON và được lưu trữ trên máy chủ và các mẫu jquery để hiển thị.

Ngay bây giờ tôi sử dụng các mẫu jquery và chúng hoạt động tốt. Trong tất cả sự công bằng tôi không có vấn đề với việc sử dụng chúng, ngoại trừ tôi thực sự không thích sự pha trộn của logic kinh doanh và các yếu tố DOM. Nếu các mẫu jQuery chỉ đơn giản là có hai cách ràng buộc dữ liệu, tôi sẽ ở trên thiên đàng, nhưng vào thời điểm này thì không. Tôi biết jsRender và jsViews trông đầy hứa hẹn nhưng tương lai của họ không được đặt trong đá và chưa sẵn sàng cho sản xuất. Tôi cần một cái gì đó tôi có thể xây dựng mã sản xuất ngày hôm nay và hỗ trợ và phát triển với và không phải viết lại/refactor mỗi hai năm.

Vì vậy musts:

  • jquery tương thích
  • được đầu đến cuối kiểm chứng
  • dữ liệu ràng buộc
  • sử dụng javascript hiện có đối tượng
  • không đòi hỏi refactoring lớn

PS Nếu ý kiến ​​của tôi về góc cạnh hoặc xương sống bị bệnh, thì hãy chỉ cho tôi đi đúng hướng.

+0

Bạn đã xem http://api.jquery.com/jquery.tmpl/ chưa? – Lance

+1

jquery.tmpl bị tạm dừng – Dimitri

+1

về http://knockoutjs.com/? –

Trả lời

3

Plugin Data Link được thiết kế để sử dụng với các mẫu jQuery, mặc dù cả hai đều không còn được hỗ trợ. Mã, và các ví dụ, có thể được tìm thấy trên trang github của dự án.

Như đã trình bày, tác giả dự định sẽ thay thế chúng với một dự án mới mang tên jsViews

Knockout.JS là một khuôn khổ liên kết dữ liệu phổ biến mà được thiết kế ban đầu với jQuery mẫu trong tâm trí. Nó vẫn hỗ trợ chúng, mặc dù từ đó nó đã triển khai hệ thống khuôn mẫu riêng của nó. Hãy xem video bài nói chuyện của Steve Sanderson về bản trình diễn mẫu Knockout và jQuery đang hoạt động.

+1

Tôi chỉ muốn cho mọi người biết, khung tôi sử dụng cuối cùng là Knockout.js. Tôi cực kỳ hạnh phúc với nó. Nó không hoàn hảo nhưng tôi nghĩ rằng đó là bước nhảy vọt và tốt hơn các khung công tác khác. Nó được ghi chép lại, rất nhiều hiểu biết tốt về nó trong cộng đồng và nó có ý nghĩa tổng thể đối với tôi. Tôi biết họ gọi nó là MVVM hoặc một số BS như vậy, bỏ qua tất cả những gì và chỉ cần nhảy vào các ví dụ và bắt đầu sử dụng nó sẽ trở nên rõ ràng rất nhanh. – ethermal

3

Loving jsRenderjsViews

Đây thực sự là một ngã ba của jquery.tmpl. Cùng tác giả. Họ vẫn được phát hành trước nhưng trở thành tiêu chuẩn mới và hy vọng sẽ được tái hòa nhập trở lại jquery đôi khi trong tương lai.

+0

tốt như nó trông, đó là bản beta và tôi chắc chắn nó sẽ bị ảnh hưởng số phận của các mẫu jquery. Vì vậy, tôi hơi lo lắng về tương lai của nó. Bạn đang sử dụng nó cho mã sản xuất? – ethermal

+0

Có, tôi đã sử dụng các sản phẩm tiền beta khác trong mã sản xuất. fg-nút ví dụ như vết thương đi vào jquery.button. Tôi không nhớ viết lại mã. Tôi biết nó gây phiền nhiễu nhưng tình yêu là một người tiên phong :) Ngoài ra, tôi có cảm giác khá tốt sẽ không phải chịu chung số phận. – Dimitri

0

Có vẻ như bạn muốn có một khuôn khổ khuôn mẫu mới cung cấp ràng buộc dữ liệu, trong khi Angular và Backbone có phạm vi rộng hơn.

Tôi biết rằng LinkedIn sử dụng Dust.js, được chọn sau khi họ đã thực hiện extensive evaluation thư viện tạo mẫu JavaScript.

2

Đối với giải pháp độc lập về khuôn khổ đối với mẫu liên kết, hãy thực hiện thanh toán Rivets.js. Mặc dù Rivets có thể được sử dụng với hầu hết các khung công tác/khung công tác MVC phổ biến - nó cũng dễ làm việc nếu bạn không sử dụng bất kỳ khung công tác MVC nào, như trường hợp của bạn. Tuy nhiên Rivets.js không đi kèm với hỗ trợ xây dựng cho bất kỳ ngôn ngữ templating cho mỗi se.

Nếu bạn thực sự muốn tiếp tục sử dụng JQuery.tmpl Tôi khuyên bạn nên (như một số người ở trên) để xem KnockoutJS. Hãy ghi nhớ rằng nếu bạn chuyển sang KnockoutJS, với mẫu của các ví dụ minh họa - nó khá dễ dàng để xen kẽ logic miền ngay bên trong các ràng buộc khai báo của bạn. Vì vậy, nó sẽ đòi hỏi một chút lập kế hoạch để giữ sự cô lập hoàn toàn về logic nghiệp vụ và lớp trình bày. Ngoài trang web chính thức, để hiểu rõ hơn về Knockout JS, tôi khuyên bạn nên kiểm tra knockmeout.net đối với một số tài nguyên indepth. Ngoài ra this post có thể giúp bạn trong quyết định của bạn.

Xem xét rằng tương lai của jquery.tmpl có phần nghi vấn về văn bản này, tôi khuyên bạn nên tìm kiếm các giải pháp khác. KnockoutJS có thể được tích hợp với các ngôn ngữ lập trình viên của bên thứ ba một cách dễ dàng.

+0

cảm ơn, xem ở trên Knockout là cuối cùng những gì tôi đã chọn. – ethermal