2015-09-01 8 views
7

Chcę dodać klasę opakowania do pierwszego elementu div na mojej stronie. Kiedyś robiłem to z widokiem. Wygląda więc na to, że Ember 2.0 nie będzie już obsługiwał wyświetleń. Jak mogę to teraz zrobić?Jak dodać nazwy klas do pierwszego elementu strony bez korzystania z widoku?

view/application.js:

import Ember from 'ember'; 

export default Ember.View.extend({ 
    classNames: ['wrapper'], 
}); 

w wyniku następującej stronie:

<body class="ember-application"> 

<div id="ember573" class="ember-view wrapper"> 
    the rest of my page in this div 
</div> 

</body> 

Jak to zrobić teraz, że widoki są nieaktualne?

+0

Czy mógłbyś dodać więcej kodu jak wygląda twój szablon ??? Nasze sklepy (zawsze pierwszy div)

{{outlet}}

Odpowiedz

7

użyłem css, aby rozwiązać ten problem:

body > .ember-view { 
    padding-left: 240px; //styles for container goes here 
} 
+0

Dzięki! To wystarczy! Jednak nie wiem, czy jest w 100% wiarygodny. Chciałbym wiedzieć, jak zastosować własną klasę do opakowania. –

+0

Ja też, ale nie znalazłem prostego sposobu, aby to osiągnąć. Myślałem o użyciu funkcji "osadzania aplikacji" (http://guides.emberjs.com/v2.0.0/configuring-ember/embedding-applications/), ale nie próbowałem, ponieważ css działa dla mnie i uważam, że ta metoda jest łatwiejsza . Jeśli chcesz, spróbuj zmodyfikować 'index.html', dodając tam div z żądaną klasą i użyj osadzania. –

0

Nie powinieneś używać Views teraz ponieważ są one przestarzałe. Użyciu elementów zamiast przykład:

import Ember from 'ember'; 

export default Ember.Component.extend({ 
    classNameBindings: ['functionName'], 

    functionName: Ember.computed(function() { 
     // function logic 
    }) 
}); 
1

Views są przestarzałe w żaru 2.0. Od tej chwili sposobem na robienie rzeczy jest używanie component i route. Można określić, która klasa nazwa jest stosowana do składnika wykonując:

export default Ember.Component.extend({ 
/* Wrap your component in primary class*/ 
    classNames: ['primary'], 

/*defined class binding*/ 
    classNameBindings: ['isUrgent'], 
    isUrgent: true 
}); 

Wszystkie informacje dotyczące tego, jak dostosować component można znaleźć w dokumentacji ember (click here to find out more)

3

Jak inni wspomniano, Jedynym sposobem na dodanie klasy przy użyciu Ember 2.0 jest użycie komponentu na twojej stronie. Komponent ma te same właściwości, co widok. Twoja strona będzie miała połączenia komponentów tylko w szablonie, jak następuje:

twoi-page.hbs

{{your-page-component}} 

Jeśli naprawdę nie chcesz mieć komponent na swojej stronie moja rada dla Ciebie byłoby, aby dodać ręcznie nazwę klasy w szablonie:

your-page.hbs

<div class="your-page"> 
    {{outlet}} 
</div>