2017-04-26 16 views
0

私はスタイルが上では適用されません。しかし、角度4.のdocument.createElementの角度4 CSS()

TS

const bookmark = document.createElement('a'); 
bookmark.className = 'bookmark'; 

SCSS

.bookmark { 
    display: block; 
    background: white; 
    color: #999; 
    padding: 20px; 
    transition: 0.3s ease all; 
    border-bottom: 1px solid #DDD; 
} 

で動的に要素を作成しよう要素をSASSファイルから削除します。私は、JSファイルに直接スタイルを追加した場合、それが動作します:TSで作成したが、これを逃すながら

const bookmark = document.createElement('a'); 
bookmark.className = 'bookmark'; 

bookmark.style.display = 'block'; 
bookmark.style.background = 'white'; 
bookmark.style.color = '#999'; 
bookmark.style.padding = '20px'; 
bookmark.style.transition = '0.3s ease all'; 
bookmark.style.borderBottom = '1px solid #DDD'; 

私はHTMLファイルで直接要素を作成する場合は、それが自動的に_ngcontent-C1属性を取得します属性(私はそれを手動でChrome Developer Tools - Elementパネルで与えると、SCSSからスタイルを取得します)。

<div class="bookmarks-list"> 
    <a class="bookmark"> 
    I am the bookmark 
    </a> 
</div> 

私の質問は、TSで作成したブックマーク要素にSASSファイルから.bookmarkクラスのスタイルを適用する方法、ありますか?

+1

なぜあなたはすべての角度で、古典的なDOMをやっていますか? –

+0

ドキュメントテンプレートはありますか? –

+0

@TatsuyukiIshiは質問してくれてありがとう。私はAngular4が新しく、_click_イベントのコンポーネントビューの要素を作成しようとしています。 _document.createElement()_の代わりにどのようにお勧めしますか? –

答えて

2

あなたは完全なコードを共有していませんでしたが、要素を作成する場所に問題があり、コンポーネント内にある場合はカプセル化のためにCSSに届かない可能性があります。

詳細情報については
@Component({ 
// ... 
encapsulation: ViewEncapsulation.None, //<<<<< this one! 
styles: [ 
    // ... 
] 
}) 
export class HelloComponent { 
// ... 
} 

は、以下のリンクを参照してください。 https://angular.io/docs/ts/latest/guide/component-styles.html#!#view-encapsulation

+0

はい、それはコンポーネントの中にあり、本当に助けられたカプセル化モードを変更しています。どうもありがとう! –