2016-08-20 8 views
0

私はAngular2を使ってNativeScriptアプリケーションを構築していますが、独自の背景画像などで各ページのスタイルを変えたいのですが、個々のcomponent.cssファイルの「Page」要素をターゲットにすることはできませんが、マスターapp.cssファイルに保存してください。問題は、1ページごとにスタイルを設定することです。私はそれらをユニークにしたい。Angular NativeSciptで個々のページのスタイルを設定するにはどうすればよいですか?

ここでわかったハックは、各コンポーネントのngOnInit()機能内にthis.page.setInlineStyle('background-color: purple;');という文字を使用することです。

app.cssファイルの個々のルートからページをターゲットに設定する方法はありますか?

+0

あなたは彼らのユニークなスタイルを追加することができ、ページごとに個別のCSSファイルを追加することができます。 –

+0

@HardikVaghani問題は、Page要素を個々のコンポーネントのCSSファイルから対象とすることができないことです。これはDOMツリーの方が高いです。 –

+0

各ページのルートレイアウトをスタイリングしてみましたか?あなたのStackLayoutに「ページ」のクラスを与えてから、CSSスタイルを使ってページ全体を取り出し、@ HardikVaghaniが示唆するようにその背景を定義します。 – scottmgerstl

答えて

2

ngOnInit()ハンドラの<Page>への参照を取得し、app.cssファイルのスタイリングフックとして使用できるCSSクラス名を適用することをお勧めします。例:

// my-page.component.ts 
import { Component, OnInit } from "@angular/core"; 
import { Page } from "ui/page"; 

@Component({ ... }) 
export class MyPage implements OnInit { 
    constructor(private page: Page) {} 
    ngOnInit() { 
    this.page.className = "my-page"; 
    } 
} 

/* app.css */ 
.my-page { 
    background-color: yellow; 
} 

完全に機能するソリューションを探している場合は、NativeScript Groceriesサンプルでこれを行います。 https://github.com/NativeScript/sample-Groceries/blob/9eb6fea66e3912878815b86aa5ce7b812e22eac5/app/groceries/groceries.component.ts#L36およびhttps://github.com/NativeScript/sample-Groceries/blob/9eb6fea66e3912878815b86aa5ce7b812e22eac5/app/app.css#L7-L12を参照してください。

0

それは(NativeScriptに)私のために働いて、私は通常、Web用の角にそのように実行します。

/deep/ Page { 
    background: #whatever; 
} 
関連する問題