2016-07-16 101 views
1

我爲flexbox創建了一個佈局生成器,我使用的是AngularJS 1.5.7組件。基本上,我的問題是「替換」不存在的組件,但我希望能夠動態樣式我的組件的根元素。AngularJS 1.5組件和樣式

說我有一個主「div」,其顯示器設置爲「flex」。當我點擊一個按鈕時,它會在此「div」中添加一個組件,這將是flexbox佈局的項目。生成的HTML是:

<div style="display:flex;"> 
    <item> 
    <div style="flex-grow:1;..."></div> 
    </item> 
</div> 

我的問題是,樣式應用到「格」 的「項目」的元素,但「Flexbox的」預期的「item」元素確實不起作用沒有任何與flexbox相關的樣式。請注意,這個想法是,我也有一些下拉和文本框用於修改「item」組件的CSS屬性。這一個模板看起來像:

<div class="zone" data-ng-style="$ctrl.model.getStyle()"> 
... 
</div> 

而且我將這個組件是這樣的:

<item model="$ctrl.item"></item> 

然後,我的問題是:「什麼是替代‘取代’指令的財產? 「或者「如何動態設置組件的根元素?」。

感謝

+0

'組件'應該是獨立的小部件,Web組件等。一旦它被編譯,它應該修改它的內容,而不是組件元素本身。對於你的情況指令是一個更好的選擇。 – estus

+0

替換已被棄用的指令,所以我很好奇我們應該如何解決原來的海報問題。 –

回答

0

我還在猶豫如何使用一些角度,只有類如.ng-isolate-scope(由於.component()總是使用分離範圍),但你可以能爲自己的組件提供的樣式:

item { flex-grow: 1; }

如果您想動態應用特定於您的元素的類,則可以遵循相同的模式。

item.selected { font-weight: bold; }

不過,我不知道它有多麼符合年長的IE版本,雖然。