2012-03-15 37 views
12

Tôi đã làm việc với các hướng dẫn trực tuyến của EmberJS, và nó đã phần nào là một quá trình đánh hay bỏ lỡ. Với Sproutcore2 tôi có thể tạo ra cấu trúc thư mục dự án thông qua lệnh dòng lệnh và được thực hiện với nó. Vâng với Ember, nó là khá thủ công. Tôi muốn có thể thiết lập cấu trúc đạo diễn của dự án, nơi tôi có thể tách riêng (các) mô hình, xem (s) và kiểm soát (s) thành các thư mục riêng của họ. Tôi đã cố gắng làm như vậy nhưng yêu cầu báo cáo không được nhập chính xác từ thư mục MVC. Tôi đã tải xuống ứng dụng "todos", nhưng nó không giúp được gì, vì cấu trúc thư mục không được thể hiện như tôi đã mong đợi.Thiết lập cấu trúc thư mục dự án EmberJS?

Tôi muốn bắt đầu bằng ứng dụng "HelloWorld" đơn giản, trong đó "ứng dụng" sẽ là mặt tiền của tôi và sau đó tôi có thể nhập mô hình, chế độ xem và điều khiển từ thư mục của chúng sẽ được đặt trong thư mục mvc trong " HelloWorldApp "thư mục. Đánh giá cao sự giúp đỡ của bạn.

HelloWorldApp (thư mục dự án)
    -> js (thư mục)
    -> lib (thư mục)
                      -> ember-0.9. 5
                      -> ember-0.9.5.min
                      -> jquery-1.6.1.min

    -> mẫu (thư mục)
                    -> chính-view-mẫu

    -> MVC (thư mục)
            -> mô hình (thư mục)
            -> view (thư mục)
            -> kiểm soát (thư mục)

    -> css (thư mục)

ứng dụng (app.js)
index.htm

Trả lời

-3

Sau khi thử các cách tiếp cận khác nhau, tôi đã khai báo tất cả (các) kiểu, (các) kiểu xem và bộ điều khiển trong tệp chỉ mục ngay sau khi ember-0.9.5 đang được gọi qua javascript. Một khi tôi đã làm điều đó tôi đã có thể nhanh chóng mô hình của tôi "Người" trong "ứng dụng".

Thx.

+2

Ồ không có gì là khủng khiếp đối với một ứng dụng lớn. Bạn có thể khai báo chúng trong các thư mục trong thư mục 'app/lib'. Chỉ cần đừng quên sử dụng 'require()' để đảm bảo mọi thứ được xây dựng theo thứ tự đúng. –

+0

Roy, đã làm điều đó và sau đó thử những cách khác. Nó không hoạt động bằng cách khai báo chúng trong các thư mục trong "app/lib". Nếu bạn đi qua câu hỏi của tôi, tôi đã tuyên bố rằng "yêu cầu" tuyên bố không phải là nhập khẩu "gói/không gian tên". Và tôi đồng ý với bạn ... bằng cách đưa chúng vào tệp chỉ mục là một cách khủng khiếp. – Combustion007

+0

Đốt cháy, tôi rất tò mò nếu bạn đã tìm ra cách tốt hơn để làm điều này ngay bây giờ. Nếu bạn có, bạn sẽ nhớ đăng thêm về nó? Tôi chỉ mới bắt đầu với ember (và các ứng dụng web nói chung), và nó rất nhiều để nuốt cùng một lúc - bất kỳ thông tin nào được đánh giá cao. – iX3

8

Hãy xem alpha đầu tiên của Ember xây dựng các công cụ cấu trúc mẫu (dựa trên Ember-Skeleton): https://github.com/emberjs/ember-gem/tree/master/lib/ember/templates/app. Tôi tưởng tượng rằng một cái gì đó rất gần với cấu trúc này sẽ là mặc định di chuyển về phía trước.

+0

Roy, cảm ơn bạn đã liên kết, tôi đã dành một phần lớn thời gian của mình để trải qua tài nguyên này, bây giờ tôi đang cố gắng tìm ra nơi mặt tiền được chôn trong tất cả các mã này. Nó sẽ được tốt đẹp để có một số loại trình diễn có sẵn trên tài liệu trực tuyến EmberJS. – Combustion007

+1

Khi ứng dụng được tạo ra một thuộc tính toàn cầu, 'App.stateManager', cũng được tạo ra. Nó có trạng thái khởi đầu ban đầu, 'App.StartState', là một ViewState. ViewStates giống như các trạng thái bình thường, ngoại trừ nó có tính năng bổ sung khi bạn nhập và thoát khỏi một ViewState nó sẽ tự động nối thêm bất kỳ 'Ember.View' nào được định nghĩa trên thuộc tính' view' của nó. Vì vậy, trong mẫu ở trên, thuộc tính chế độ xem có chế độ xem được xác định với mẫu, 'main_page'. Mẫu đó giữ mẫu ban đầu được hiển thị. Nếu bạn cần chạy bất kỳ mã nào khi khởi động, trong main.js thêm 'MyApp.ready = function() {//..init code vào đây ...}' –

+0

Roy, cảm ơn rất nhiều cho lời giải thích. Trước khi bình luận cuối cùng của bạn, tôi thậm chí không biết bất cứ điều gì về "tiểu bang". Tuy nhiên, tôi biết làm thế nào "trạng thái" chức năng, tôi có một lịch sử lâu dài với "Adobe Flex". Tôi phải hỏi bạn điều này, tại sao không có bất kỳ đề cập đến "tiểu bang" hoặc bất kỳ mã demo trên tài liệu trực tuyến EmberJs? Tôi nghĩ rằng đó là một cách khá nghèo để giới thiệu một khuôn khổ mà không có tài liệu trực tuyến thích hợp cho dù đó là hay không phải là một nỗ lực nguồn mở? Bây giờ liên quan đến những gì bạn chia sẻ trong bình luận cuối cùng của bạn, nó sẽ có thể cho bạn để "jsfiddle" một số mã để tôi có thể có được một ý tưởng. – Combustion007

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