2011-12-14 12 views
7

Wiem, że ember js jest dobry dla aplikacji z jedną stroną i wygląda na to, że możesz zlokalizować aplikację ember js w pojedynczym kontenerze zamiast na całej stronie, więc zastanawiam się czy ember js byłby dobre dopasowanie do zaawansowanego tworzenia widżetów, a nie tylko lekko fantazyjne rozwijanie lub coś innego, ale bardziej złożony widget, który może radzić sobie z własnym zasobnym zasobem itp. Lub używa ember.js w ten sposób przesadny?widżety ember.js

Jeśli jest odpowiedni dla widżetów, byłoby to możliwe bez konieczności przekodowywania widżetów do korzystania z wielu aplikacji widżetów ember na tej samej stronie, gdy aplikacje ember pochodzą od różnych autorów, przykładem tego co mam na myśli jest to, że z łatwością mogą mieć wtyczki jQuery z różnych źródeł na tej samej stronie bez żadnych konfliktów.

+0

Wygląda na http: // stackoverflow. com/questions/11571896/you-can-use-the-same-root-element-body-multiple-times-in-an-ember-applicati – iX3

Odpowiedz

10

Ember.js nie byłby przesadą dla złożonych widżetów i możliwe jest korzystanie z wielu aplikacji widgetów ember na jednej stronie. Konieczna będzie jednak niewielka modyfikacja kodu. Z Ember.js code.

„Domyślnie, Ember.Application rozpocznie nasłuchiwanie zdarzeń na dokumencie Jeśli aplikacja jest osadzony wewnątrz strony, zamiast kontrolowania całego dokumentu, można określić, który element DOM do dołączyć do ustawiając właściwość rootElement:

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

korzeń o Ember.Application nie muszą być usuwane w trakcie czasu życia strony. Jeśli masz tylko jedną konceptualną aplikację dla całej strony i nie osadzasz na swojej stronie aplikacji Ember innych firm, użyj domyślnego katalogu głównego dla swojej aplikacji na .

Wystarczy tylko określić korzeń jeśli strona zawiera wiele wystąpień Ember.Application.”

Teraz oczywistym problemem byłoby jak ustawić rootElement dla każdego z tych widżetów przed jego JavaScript jest załadowany Mogę wymyślić wiele sposobów na zrobienie tego, ale najlepszy sposób zależy od konfiguracji tego, co próbujesz zrobić. Mam nadzieję, że to postawi cię na poprawnej ścieżce: