0

我正在使用 Angular2 构建一个 NativeScript 应用程序,并且我想使用独特的背景图像等对每个页面进行不同的样式设置。我无法定位单个 component.css 文件中的“页面”元素,但我可以定位页面中的主app.css文件。问题是为每个页面设置样式。我希望它们是独一无二的。

我现在想出的技巧是在每个组件this.page.setInlineStyle('background-color: purple;');的函数内部使用。ngOnInit()

有没有办法简单地从app.css文件中的单个路由中定位页面?

4

2 回答 2

3

<Page>我首选的方法是在处理程序中获取对 的引用,并应用一个 CSS 类名,我可以在我的文件ngOnInit()中将其用作样式挂钩。app.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#L36https://github.com/NativeScript/sample-Groceries/blob/9eb6fea66e3912878815b86aa5ce7b812e2e2e2e /app.css#L7-L12

于 2016-08-22T13:22:44.810 回答
1

它对我有用(在 NativeScript 中),我通常在 Angular for web 中这样做:

/deep/ Page {
  background: #whatever;
}
于 2017-07-29T16:03:05.317 回答