Vì vậy, xây dựng một ứng dụng sử dụng nhiều (2 cho bây giờ) bộ sưu tập toàn cầu, nó là một danh mục của cả hai tài liệu và bệnh nhân, họ có quan hệ, nhưng không như trong, 1 tài liệu hoặc danh sách tài liệu thuộc về 1 bệnh nhân, do đó, họ thực tế là 2 bộ sưu tập riêng biệt,BackboneJs: làm thế nào để tôi bootstrap dữ liệu của tôi trong đánh dấu trang, và khi nào tôi gán chúng vào bộ sưu tập của tôi
ứng dụng của tôi được cấu trúc trong hệ thống mô-đun rất giống với cách thức được mô tả ở đây: http://weblog.bocoup.com/organizing-your-backbone-js-application-with-modules
tài liệu backbone.js nói về việc khởi động, để làm điều gì đó như thế này,
<script>
Accounts.reset(<%= @accounts.to_json %>);
</script>
đó là trong một ứng dụng Rails, tôi sẽ tuy nhiên cần phải làm điều đó khác nhau trong asp.net MVC3, nhiều khả năng tôi sẽ chỉ in ra chuỗi json của tôi mà không có sự <% =%> đó không phải là dao cạo view engine phong cách)
nhưng câu hỏi của tôi ở đây là,
Accounts.reset(...data...);
này chỉ là nổi ở đâu đó trong đánh dấu của tôi, nó không có trong bất kỳ cách nào độc đáo có cấu trúc trong hệ thống mô-đun của tôi, không phải là có một cách để làm độc đáo điều này? nơi tôi có thể lấy dữ liệu, từ bên trong mô-đun của tôi?
và một câu hỏi phụ, giả sử tôi có một lộ trình trong ứng dụng của xương sống của tôi http://example.com/#documents
và ai đó gọi liên kết này trực tiếp, ứng dụng của tôi sẽ có dữ liệu sẵn sàng (từ bootstrap) đúng thời hạn, trước khi con đường riêng của mình là Thực thi?
Tôi không có chuyên gia backbone.js nhưng tôi đã viết một JsFiddle đơn giản thực hiện kiểu khởi động này, mặc dù hơi khác một chút. Về cơ bản, tôi khi tôi khởi tạo View của mình, nó tạo ra Collection và gọi Collection.refresh(). Vì vậy, bất cứ nơi nào tôi tạo View của tôi, nó tự động khởi tạo dữ liệu của nó ... hoặc bootstraps dựa trên verbiage của bạn. Đây là liên kết đến JsFiddle: http: // jsfiddle.net/jcscoobyrs/WVX66/ –
ý tưởng hay, nhưng khi tôi đọc tài liệu về xương sống, sử dụng tìm nạp (hoặc giống như bạn làm mới bộ sưu tập của bạn) là không cần thiết khi tải trang. lý do tại sao có kết nối thứ hai để tìm nạp tất cả dữ liệu, trong khi bạn có thể gửi nó ngay lập tức với trang. tất cả tôi tự hỏi là nếu cách tôi làm nó bây giờ là cách tốt nhất để cung cấp cho nó với html ... như bây giờ nó chỉ chèn một thẻ script, thêm một đống toàn bộ dữ liệu json, mà tôi tất nhiên loại bỏ sau khi khởi tạo bộ sưu tập của tôi. tuy nhiên vì json của bạn xuất phát từ một nguồn bên ngoài, bạn không thể sử dụng kỹ thuật của mình cho ví dụ của bạn nên sử dụng collection.refresh() sẽ là tốt nhất – Sander
Backbone.js được ghi vào giao diện với các thiết bị đầu cuối RESTful và thực hiện điều này bằng cách liên kết Bộ sưu tập của bạn với REST endpoint được sử dụng để lấy/làm tươi bộ sưu tập của bạn. Trong khi bạn có thể khởi động mọi thứ theo cách bạn muốn, như bạn thấy bằng câu trả lời bạn nhận được, nó không phổ biến như bạn nghĩ. Mục đích của backbone.js và tương tự là tách giao diện người dùng/Chế độ xem khỏi chính dữ liệu như vậy trong trải nghiệm của tôi, tôi không bao giờ chuyển bất kỳ thứ gì nhiều hơn HTML bản mẫu để tải backbone.js của mình, sau đó sẽ thực hiện công việc truy xuất/làm mới/quản lý các đối tượng dựa trên REST của tôi. "Đối với mỗi của riêng mình." :) –