Как удалить / заменить тег селектора компонента angular2 из HTML

Я начинаю работать с angular2 (версия 2.0.0-alpha.46), я создаю несколько компонентов, при создании компонента angular2 с кодом ниже

Машинопись

import {ComponentMetadata as Component, ViewMetadata as View} from 'angular2/angular2';

@Component({
   selector: 'my-component'
})

@View({
     template: '<div class="myClass">Hello My component</div>'
 })

export class MyCompoent{
    constructor() {
        console.info('My Component Mounted Successfully');
    }
}

HTML

<my-component></my-component>

Это работает нормально, но когда я делаю элемент проверки, я вижу тег, сгенерированный как

Выходной HTML

<my-component>
    <div>Hello My component</div>
<my-component>

проблема

это держит <my-component> тег в HTML, и некоторые из моих CSS не работают должным образом.

Вопрос

Так их способ удалить тег <my-component>? похож на угловой 1.x (замените: true в директиве).

Любая помощь будет оценена..!

2 ответа

Заменить было запрещено в AngularJS 1.x в соответствии с https://github.com/angular/angular/issues/3866 потому что это было не очень хорошая идея.

В качестве обходного пути вы можете использовать селектор атрибута в вашем компоненте, как

selector: '[my-component]'

selector: '[myComponent]'

а затем использовать его как

<div my-component>Hello My component</div>

<div myComponent>Hello My component</div>

намек

Директивные селекторы должны быть camelCase вместо змеиного футляра. Чехол Snake используется только для селекторов элементов, потому что - требуется для пользовательских элементов. Angular не зависит от того, являются ли компоненты пользовательскими элементами, но в любом случае рекомендуется соблюдать это правило. Angular отлично работает с атрибутами camelCase и использует их со всеми директивами (*ngFor, ngModel,...), а также предлагается в Руководстве по угловым стилям.

Чтобы процитировать документацию от Upgrade 1 до Angular 2:

Директивы, которые заменяют их основной элемент (replace: true в Angular 1), не поддерживаются в Angular 2. Во многих случаях эти директивы могут быть обновлены до обычных директив компонентов.

Фактически, это зависит от того, что вы хотите сделать, и вы должны знать, что Angular2 поддерживает несколько вещей:

В зависимости от того, что вы хотите сделать, вы можете выбрать разные подходы. Для вашего простого примера кажется, что решение @Günter лучше;-)

Другие вопросы по тегам