2015-09-01 10 views
7

Voglio aggiungere una classe wrapper al primo elemento div nella mia pagina. Ho usato per fare questo con una vista. Quindi, sembra che Ember 2.0 non supporterà più Views. Quindi, come posso farlo ora?Come aggiungo classNames al primo elemento della pagina senza utilizzare una vista?

vista/application.js:

import Ember from 'ember'; 

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

Conseguente la seguente pagina:

<body class="ember-application"> 

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

</body> 

Come è questo fatto ora che le opinioni sono obsoleti?

+0

Potresti postare più codice come appare il tuo template ??? I nostri punti vendita (sempre prima div)

{{outlet}}

risposta

7

ho usato css per risolvere questo problema:

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

Grazie! Questo farà il trucco! Tuttavia, non so se è affidabile al 100%. Mi piacerebbe sapere come applicare la mia classe al wrapper. –

+0

Anch'io, ma non ho trovato un modo semplice per raggiungere questo obiettivo. Ho pensato di usare la funzione "embedding applications" (http://guides.emberjs.com/v2.0.0/configuring-ember/embedding-applications/), ma non ci ho provato, visto che il css funziona per me e trovo questo metodo più semplice . Se lo desideri, prova a modificare 'index.html', aggiungendo qualche div con la classe desiderata e usa l'incorporamento. –

0

Non dovresti usare Views ora dato che sono deprecati. Utilizzare componenti, invece, ad esempio:

import Ember from 'ember'; 

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

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

Views sono obsoleti in braci 2.0. Il modo di fare le cose da ora in poi è utilizzare component e route. È possibile specificare quali nome della classe viene applicato al componente facendo:

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

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

Tutte le informazioni riguardanti su come personalizzare il vostro component può essere trovato nella documentazione brace (click here to find out more)

3

Come gli altri Detto questo, il l'unico modo per aggiungere una classe usando Ember 2.0 è quello di utilizzare un componente sulla tua pagina. Il componente ha le stesse proprietà della vista. La vostra pagina avrà una chiamata componente solo nel modello, come la seguente:

your-page.hbs

{{your-page-component}} 

Se davvero non si vuole avere una componente sulla tua pagina, il mio consiglio sarebbe quello di aggiungere manualmente un nome di classe nel modello:

your-page.hbs

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