2012-01-10 5 views
7

Tôi đang xem xét ember.js, sau khi làm việc với SproutCore 1 trước đây. Tôi đang tìm một số ví dụ về cách thêm và xóa các khung nhìn từ DOM khi người dùng điều hướng ứng dụng.Ember.js thêm và xóa các chế độ xem khỏi DOM?

Ví dụ: tôi có một ứng dụng chứa một tập hợp các trường hợp và mỗi trường hợp có một quy trình làm việc. Ngoài ra còn có các trang quản trị, v.v.

Khi người dùng khởi động ứng dụng, giao diện người dùng giống bảng điều khiển được hiển thị. Từ đây, người dùng có thể tìm kiếm hoặc nhấp vào một trường hợp để hiển thị trường hợp đó. Tại thời điểm này, tôi muốn thực hiện các bước sau:

  • Tôi muốn loại bỏ GUI cho Trang tổng quan và tôi muốn hiển thị GUI cho trường hợp - đó là một GUI phức tạp với chính bộ điều hướng của chính nó quy tắc, v.v.
  • Ngoài ra, trong trường hợp tôi muốn thêm và xóa các phần của GUI khi người dùng điều hướng và thao tác vụ việc.
  • Khi người dùng nhấp vào liên kết "Trang tổng quan", tôi muốn GUI hiện tại bị xóa và trang tổng quan sẽ được thêm lại.

Vì đây sẽ là một ứng dụng hơi lớn, tôi không chắc chắn nếu chuyển đổi tham số isVisible là đủ hay các biện pháp khác cần thực hiện để không làm quá tải trình duyệt của người dùng.

Có hướng dẫn hay ví dụ minh họa cách thực hiện việc này không?

+0

Bạn nên xem mã cho [trạng thái ember] (https://github.com/emberjs/ember.js/tree/master/packages/ember-states). –

+1

ud3323: Cảm ơn, tôi có, nhưng điều đó để lại hai câu hỏi: 1. Làm thế nào để thêm và xóa childViews, và 2. trong mã nào tôi nói MyApp.statemanager.create()? Đặt mã đó bên trong Ember.Application.create ({ready: function ({// here})}) ;, dường như nạp statechart ngay trước các khung nhìn được tạo trong index.html của tôi. –

+0

Một trong những khác biệt lớn giữa các statecharts SC 1.x cũ và các trạng thái ember mới là ViewStates. Về cơ bản nó xử lý thêm/loại bỏ các khung nhìn trong statechart của bạn. Đối với câu hỏi khác của bạn, khi bạn gọi Ember.StateManager.create nên khởi tạo statechart và nhập trạng thái ban đầu của bạn cho bạn. –

Trả lời

9

CẢNH BÁO: lỗi thời ĐÁP

Một quan điểm được thừa hưởng từ Ember.View có nghĩa là nó được một số phương pháp then chốt. append(), được gắn thêm vào body, appendTo(arg) có tham số và remove().

Đối số là bộ chọn kiểu jQuery của vị trí chèn phần tử trong DOM.

// my view 
App.PartsView = Ember.View.extend({ 
    ... 
}); 


// create/insert my view 
App.partsView = App.PartsView.create(); 
App.partsView.appendTo('#partcontainer'); 

Trong mã của tôi Tôi có một <div id="partcontainer"></div>.

// remove from DOM 
App.partsView.remove(); 

Các tài liệu có một phần tốt trên Building a View Hierarchy và sau đó một phần trên Ember.ContainerView tùy thuộc vào việc bạn muốn làm điều đó tất cả programatically hay không.

+0

Tài liệu jQuery cung cấp một [tổng quan về các bộ chọn jQuery có sẵn] (http://api.jquery.com/category/selectors/). – Abdull

+0

Câu hỏi: Người ta nên làm điều này? Nó dường như là một chút trong cách làm việc bình thường với Ember. –

+1

Câu hỏi hay. Tôi đã viết điều này gần hai năm trước, khi emberjs còn nhiều hơn "chưa hoàn thành", và tôi đã không cập nhật những gì đang xảy ra. Câu trả lời của tôi có thể đã lỗi thời. –