2011-12-14 33 views
7

Tôi biết rằng js ember là tốt cho các ứng dụng trang đơn và có vẻ như bạn có thể bản địa hóa ứng dụng js ember thành một thùng chứa đơn chứ không phải toàn bộ trang, vì vậy tôi tự hỏi nếu js ember sẽ là thích hợp cho việc tạo widget nâng cao, không chỉ là thả xuống một chút hay bất cứ thứ gì khác ngoài một tiện ích phức tạp hơn có thể xử lý tài nguyên riêng của mình. Hoặc đang sử dụng ember.js theo cách này quá mức cần thiết?widget ember.js

Nếu nó phù hợp với các vật dụng, nó có thể được mà không cần phải recode các widget để sử dụng nhiều ứng dụng widget ember trên cùng một trang khi các ứng dụng ember đã đến từ các tác giả khác nhau, một ví dụ về những gì tôi có nghĩa là tôi có thể dễ dàng có nhiều plugin jquery từ nhiều nguồn khác nhau trên cùng một trang mà không có bất kỳ xung đột nào.

+0

Hình có liên quan đến http: // stackoverflow. com/questions/11571896/bạn-không thể-sử dụng-cùng-gốc-yếu tố-cơ thể-nhiều lần-in-an-ember-applicati – iX3

Trả lời

10

Ember.js sẽ không quá mức cần thiết cho các tiện ích phức tạp và hoàn toàn có thể sử dụng nhiều ứng dụng tiện ích con trên một trang. Tuy nhiên, sẽ cần phải có một chút sửa đổi mã. Từ Ember.js code:.

"Theo mặc định, Ember.Application sẽ bắt đầu lắng nghe cho các sự kiện trên các tài liệu Nếu ứng dụng của bạn được nhúng bên trong một trang, thay vì kiểm soát toàn bộ tài liệu, bạn có thể xác định các phần tử DOM để gắn vào bằng cách thiết lập rootElement tài sản:

MyApp = Ember.Application.create({ 
     rootElement: $('#my-app') 
    }); 

các gốc rễ của một Ember.Application phải không được loại bỏ trong quá trình trong toàn bộ thời gian của trang. Nếu bạn chỉ có một ứng dụng khái niệm duy nhất cho toàn bộ trang và không nhúng bất kỳ ứng dụng nào của bên thứ ba Ember vào trang của bạn, hãy sử dụng gốc tài liệu mặc định cho ứng dụng của bạn.

Bạn chỉ cần phải xác định root nếu trang của bạn chứa nhiều trường hợp của Ember.Application."

Bây giờ vấn đề hiển nhiên sẽ là làm thế nào để thiết lập rootElement cho mỗi một trong các vật dụng trước khi nó được tải JavaScript Tôi có thể nghĩ ra một số cách để làm điều này, nhưng cách tốt nhất phụ thuộc vào việc thiết lập bất cứ điều gì bạn đang cố gắng làm.Hy vọng rằng điều này đặt bạn vào con đường chính xác