我正在使用Angular2构建一个NativeScript应用程序,并且我希望使用独特的背景图像等对每个页面进行不同的样式设置。我无法定位" Page"单个component.css文件中的元素,但我可以在主app.css
文件中定位页面。问题是为每个页面设置样式。我希望它们是独一无二的。
我现在想到的黑客是在每个组件的this.page.setInlineStyle('background-color: purple;');
函数中使用ngOnInit()
。
有没有办法简单地定位来自app.css
文件的各个路线的页面?
答案 0 :(得分:3)
我首选的方法是在<Page>
处理程序中获取对ngOnInit()
的引用,并应用我可以在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。
答案 1 :(得分:0)
它为我工作(在NativeScript中),我通常在Angular for web中喜欢它:
/deep/ Page {
background: #whatever;
}