2013-07-24 25 views
7

Giả sử tôi có một ứng dụng web - một ứng dụng lớn, phức tạp, đường ray, giống như một ứng dụng kế toán. Tôi thấy một sử dụng cho một số ứng dụng trang đơn thay vì các trang đường tròn thông thường. Ví dụ, tôi có thể nhìn thấy một người sử dụng phục vụ tốt hơn với một trang duy nhất/ứng dụng động trực quan cho:Ember JS và nhiều ứng dụng một trang

  • Tạo Ngân hàng hòa giải
  • Tạo một Invoice
  • Điền Báo cáo Thời gian
  • vv ..

Đây là tất cả các ứng dụng một trang riêng biệt ...

Tất cả các ứng dụng ember tôi thấy là trang duy nhất và p đơn urpose.

Tôi muốn có nhiều ứng dụng trang đơn, được xây dựng bằng ember. Làm thế nào mà sẽ trông đối với:

Tuyến đường: Tôi muốn kết hợp các tuyến máy chủ và tuyến khách hàng. Làm thế nào mà sẽ nhìn vào Ember? Phục vụ các ứng dụng Ember khác nhau, mỗi ứng dụng có bộ định tuyến và tuyến ứng dụng riêng của chúng?

Mẫu: Tất cả các "applet" của tôi có được biên dịch và đẩy xuống cho khách hàng khi tải không? Hoặc tôi sẽ tận dụng require.js và tải từng ứng dụng một trang tùy thuộc vào việc chúng có được điều hướng đến không? ...

Có ai có thể trợ giúp với hai câu hỏi đó không? Cảm ơn bạn trước!

+0

FYI - Tôi vết thương lên lưu trữ của khách hàng khác nhau "module" trên tên miền phụ của mình và sau đó sử dụng giá -các máy chủ trên máy chủ để phục vụ các tên miền phụ khác nhau. Tôi cũng đã tạo một repo được chia sẻ cho một số chức năng khách hàng phổ biến. Nó khá nhỏ. –

+0

bạn có thể cung cấp thêm thông tin về cách bạn làm không? Làm cách nào bạn giải quyết các mối quan tâm ứng dụng phổ biến như menu chung, ủy quyền và xác thực. Bạn đã hợp nhất chúng trong một trang hay tất cả các ứng dụng của bạn đều được tách ra? – ykaragol

Trả lời

2

Tuyến đường: Tôi muốn kết hợp các tuyến máy chủ và tuyến khách hàng. Làm thế nào mà sẽ nhìn vào Ember? Phục vụ các ứng dụng Ember khác nhau, mỗi ứng dụng có bộ định tuyến và tuyến ứng dụng riêng của chúng?

Phụ thuộc vào mức độ trùng lặp có về tính năng. Để chắc chắn bạn có thể phục vụ các ứng dụng Ember khác nhau bằng bộ định tuyến và tuyến đường của riêng mình. Trong trường hợp đó, bạn có lẽ cũng sẽ viết một thư viện chia sẻ với các lớp cơ sở chung và mixin.

Một giải pháp thay thế sẽ là có một ứng dụng độc thân trông giống và hoạt động rất khác nhau tùy thuộc vào tuyến đường. Đó là nơi tôi sẽ bắt đầu cho đến khi bạn có một cảm giác tốt cho ember và thấy một lý do thuyết phục để chia nhỏ mọi thứ.

Mẫu: Tất cả các "applet" của tôi có được biên soạn và đẩy xuống cho khách hàng khi tải không? Hoặc tôi sẽ tận dụng require.js và tải từng ứng dụng một trang tùy thuộc vào việc chúng có được điều hướng đến không? ...

Đường dẫn kháng ít nhất trong đường ray là sử dụng sprockets để biên dịch và đóng gói mẫu của bạn - khi biên dịch chúng chỉ là javascript. Thông thường, một ứng dụng đường ray sẽ gộp tất cả javascript vào application.js và bao gồm cả khi tải. Một giải pháp thay thế là chia mã và mẫu cụ thể cho ứng dụng thành app1.js, app2.js, v.v. và tải mỗi khi ứng dụng được điều hướng đến.

+0

Tôi đã làm việc với Ember một chút - và liên quan đến câu trả lời đầu tiên của bạn - bắt đầu bằng một ứng dụng duy nhất - Làm thế nào mà có thể tìm trong tệp bộ định tuyến? Hai url "gốc" khác nhau với một tổ các mục bên dưới nó? –

+0

vâng đó là ý tưởng. –

1

tôi sẽ đề nghị sử dụng một cấu trúc PODS và sau đó bạn có thể có các tuyến đường như

/app1/ 
    /route1 
    /route2 
/app2/ 
    /route1 
    /route2 
etc... 

Nếu bạn tạo ra với cấu trúc vỏ bạn thư mục ví dụ ember generate route app1\route1

bạn sẽ kết thúc với một cấu trúc thư mục tốt mà bạn có thể chia tay sau đó, một cái gì đó như:

/app 
     /pods/ 
      /app1 
       /route1 
        route.js 
        controller.js 
        template.hbs 
       /route2 
        route.js 
        controller.js 
        template.hbs 
      /app2 
       /route1 
        route.js 
        controller.js 
        template.hbs 
       /route2 
        route.js 
        controller.js 
        template.hbs 
+0

Đây là tài liệu về cấu trúc Pod: https://ember-cli.com/user-guide/#pod-structure – hailong

Các vấn đề liên quan