2015-12-24 21 views
11

Sto cercando un modo per avere un componente che viene reso solo con il suo contenuto. Ad esempio, dato il componente:sostituire il componente con il suo contenuto - angolare 2

@Component({selector: 'my-cmp', template: '<div> my-cmp </div>'}) 
class MyComponent { 
} 

rendendolo con angular2 sarà aggiungere il seguente al DOM:

<my-cmp> 
    <div> my-cmp </div> 
</my-cmp> 

Mentre io voglio trovare un modo per renderlo direttamente come:

<div> my-cmp </div> 

Purtroppo da quando angular 2 è relativamente nuovo (è appena diventato beta) - Google non è così utile, per non parlare di quanto manca la documentazione attuale ..

risposta

1

Secondo documentation di 1.x angolare

Sostituire l'elemento della direttiva stessa (se sostituire è vero - deprecato).

Quindi penso che questa caratteristica non sarà disponibile lo angolare 2

0

Mi ricordo di fare una domanda simile per Angularjs a pochi anni fa. Il consenso sembrava essere allora, come potrebbe essere ora sei tu probabilmente non voglio farlo.

Interrompe la semantica: uno <video/> o uno <input/> non si scompone nel suo contenuto. I tuoi componenti Angolari non dovrebbero neanche.

Probabilmente riuscirai ancora a ottenere ciò che desideri pensando più a fondo sul tuo markup/css? Forse se ti affidi il tuo caso d'uso potremmo essere in grado di darti un'alternativa?

3

Si può fare somethink come il seguente:

@Component({selector: 'div.my-cmp', template: 'my-cmp'}) 
class MyComponent { 
} 

e nel codice HTML:

<div class="my-cmp" /> 
+0

Ciò ha risolto il mio problema. Esattamente quello di cui avevo bisogno. Grazie! – Methodician

10

Ordina dello stesso può essere ottenuto utilizzando un selettore di attributo

camelCasing è obbligatoria per attributi dal alpha.52

@Component({ 
    selector: '[myCmp]', //attribute selector 
    template: 'my-cmp' 
}) 
class MyComponent { 
} 

E utilizzare questa chiamarlo:

<div myCmp></div> 
+3

questo rende il mio markup brutto, come il tag e le classi per il componente non sono più un problema del componente .. :-( – NullVoxPopuli

+0

@NullVoxPopuli hai ragione ... Voglio scrivere un nome di tag componente "personalizzato" invece di markup html ...: P –

Problemi correlati