最简单的方法是在应用程序准备好时将 CSS 动画放入应用程序引导组件中,内容将被替换。
请注意,应用程序将以不同的速度加载,具体取决于它是开发构建还是生产构建,因为脚本的缩小和更改检测将只运行一次,从而提供更快的加载时间。您可能需要调整动画的速度。来自应用程序的 Http 请求也可能起作用。
我从:http ://www.alessioatzeni.com/blog/css3-loading-animation/得到这个
根组件中的 CSS 和 Html:
<app-root>
<style>
#content {
width: 100%;
/* Full Width */
height: 1px;
margin: 1px auto;
background: #000;
}
.expand {
width: 100%;
height: 1px;
margin: 1px 0;
background: #2187e7;
position: absolute;
box-shadow: 0px 0px 10px 1px rgba(0, 198, 255, 0.7);
/*adjust speed here */
-moz-animation: fullexpand 1.5s ease-out;
-webkit-animation: fullexpand 1.5s ease-out;
}
/* Full Width Animation Bar */
@-moz-keyframes fullexpand {
0% {
width: 0px;
}
100% {
width: 100%;
}
}
@-webkit-keyframes fullexpand {
0% {
width: 0px;
}
100% {
width: 100%;
}
;
}
</style>
<div id="content">
<span class="expand">Loading...</span>
</div>
</app-root>
第二个选项是访问bootstrap
功能槽system.js
并使其可用于index.html
.
这是Ben Nadel的博客文章,没有如何做到这一点。
演示:在 Angular 2 RC 1 中创建预引导加载屏幕
(function( global ) {
// .... code removed ....
System.config({
// .... code removed ....
});
// Load "./app/main.ts" (gets full path from package configuration above).
// --
// NOTE: We are attaching the resultant promise to the global scope so that other
// scripts may listen for the successful loading of the application.
global.bootstrapping = System
.import( "app" )
.then(
function handleResolve() {
console.info( "System.js successfully bootstrapped app." );
},
function handleReject( error ) {
console.warn( "System.js could not bootstrap the app." );
console.error( error );
return( Promise.reject( error ) );
}
)
;
})( window );