2015-12-24 87 views
11

我正在尋找一種方法來使組件僅與其內容一起呈現。例如,由於組件:用其內容替換組件 - 角2

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

與angular2使其將添加以下到DOM:

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

雖然我想找到一種方法來直接呈現爲:

<div> my-cmp </div> 

可悲的是,因爲角度2是相對較新的(剛剛測試版) - 谷歌並沒有那麼有用,更不用說目前的文檔是多麼的缺乏了......

回答

1

根據角度的1.x的documentation

替換指令的元素本身(如果替換爲真 - 過時了)。

所以我覺得這個功能將無法使用它的角2

0

記得詢問Angularjs一個類似的問題在幾年前。當時的共識似乎是,因爲它現在可能是你可能不想這樣做。

它破壞語義:<video/><input/>不會分解爲其內容。你的Angular組件也不應該。

你可能仍然可以通過更深入地思考你的標記/ css來實現你想要的嗎?也許如果你充實你的用例,我們可能會給你一個選擇?

3

你可以做somethink如下所示:

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

,並在你的HTML:

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

這解決了我的問題。正是我需要的。謝謝! – Methodician

10

相同的排序可以通過使用屬性選擇器來實現

駝峯規則是必須的屬性自alpha.52

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

並用它來稱呼它:

<div myCmp></div> 
+3

這使得我的標記變得醜陋,因爲組件的標籤和類不再是組件的關注點。:-( – NullVoxPopuli

+0

@NullVoxPopuli你是對的...我想寫一個「自定義」組件標籤名稱html標記...:P –