Angular2在刷新页面时不会注入模板CSS
我有一个应用程序使用选择器投资组合应用程序,并有2个样式表 – ‘../app/styles/templateMobile.css’,’../app/styles/templateOther.css’
现在,当我从默认URL(localhost:3000 ATM)打开我的应用程序时,样式表将被正确应用.但是当我去不同的路由,并按刷新(F5),模板样式不会应用于页面.当我从不同的路线开始时也会发生同样的事情. 控制台中没有错误信息. 我在firefox,chrome和safari,无痕模式和清除浏览器缓存中进行了测试.我还在LG G2,iPhone,iPad和各种Android模拟器(Nexus 9,Nexus 10,Galaxy Nexus)上进行了测试.所有的时间结果是一样的. app.component: import { Component } from 'angular2/core'; import {ViewEncapsulation} from 'angular2/core'; import { ROUTER_PROVIDERS,ROUTER_DIRECTIVES,RouteConfig } from 'angular2/router'; import { LandingComponent } from './landing.component'; import { PortfolioComponent } from './portfolio.component'; import { PagesService } from './pages.service'; @Component({ selector: 'portfolio-app',templateUrl: '/app/views/template.html',styleUrls: ['../app/styles/templateMobile.css','../app/styles/templateOther.css'],encapsulation: ViewEncapsulation.None,directives: [ROUTER_DIRECTIVES],providers: [ROUTER_PROVIDERS,PagesService] }) @RouteConfig([ { path: '/landing',name: 'Landing',component: LandingComponent,useAsDefault: true },{ path: '/portfolio',name: 'Portfolio',component: PortfolioComponent } ]) export class AppComponent { landing = true; portfolio = false; changeMiniNavLanding = function () { this.landing = true; this.portfolio = false; } changeMiniNavPortfolio = function () { this.landing = false; this.portfolio = true; } } 主要: import {bootstrap} from 'angular2/platform/browser'; import {AppComponent} from './app.component'; bootstrap(AppComponent); 如果您需要其他信息,请咨询或浏览gitHub存储库. (所有相关文件都在应用程序文件夹中). 谢谢您的帮助.
我克隆你的回购,你的样式正在加载罚款.您所遇到的问题与CSS注入无关.它与“如果你不介意我说”糟糕的设计,而不是使用ViewEncapsulation相关.
在我解释这个问题之前,我不得不说,你目前使用CSS的方式,你会更好地使用一个全局的CSS文件. 说明 我将以类AppContainer为例来帮助解释问题. 在styles / landingOther.css你有: .appContainer { width: 60%; } 因为您的默认路线是/着陆,当您访问页面http:// localhost:3000 /时,.appContainer类将被注入页面,并将保留在页面上,直到您刷新.所以,当你路由到/投资组合时,appContainer仍然被注入到页面中,它将被应用.但是,当您直接访问http:// localhost:3000 /投资组合时,登陆组件不会被访问,因此.appContainer类从未注入到页面中,因此不会被应用.同样适用于其他类.我希望你得到逻辑. 另外,一个半关系的笔记,您的portfolio.component.ts中的css文件名称是错误的.这是在大写的情况下,而实际文件是小套装. (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |