Angular2组件开发—为模板应用样式(三)
2015-12-15 13:56
621 查看
设置ShadowDom策略
在Angular2中,ShadowDom的三种策略对应于三个类,这三个类继承自ShadowDomStrategy:Angular2的内核引用的是父类ShadowDomStrategy,我们只需要从三个继承类中选择 一个与之绑定就可以实现不同策略的选择。下面的示例意味着选择NativeShadowDomStrategy:
bind(ShadowDomStrategy).toFactory(function(doc){ return new NativeShadowDomStrategy(doc.head); },[DOCUMENT_TOKEN])
上面的表达式用来提交给Angular2的注入器/DI,可以理解为:如果注入器需要实例化一个ShadowDomStrategy 实例,应当以DOCUMENT_TOKEN为参数,调用一个匿名的工厂函数,而这个工厂函数将返回一个 NativeShadowDomStrategy类的实例。
ES6支持lambda表达式,因此我们可以写的简单一些:
bind(ShadowDomStrategy).toFactory(doc => new NativeShadowDomStrategy(doc.head),[DOCUMENT_TOKEN])
补丁包
在Angular2的alpha.28版本的官方发行包中,没有包含默认ShadowDom策略之外的另两种策略实现模块,因此 我们单独打了一个包render.dev.js。
例如:
<!doctype html> <html> <head> <meta charset="utf-8"> <title>template - scoped&shadowdom strategy</title> <script type="text/javascript" src="lib/system@0.16.11.js"></script> <script type="text/javascript" src="lib/angular2.dev.js"></script> <script type="text/javascript" src="lib/render.dev.js"></script> <script type="text/javascript" src="lib/system.config.js"></script> </head> <body> <h1>我是H1,我在组件外</h1> <ez-app></ez-app> <script type="module"> import {bind,Component,View,bootstrap} from "angular2/angular2"; import {ShadowDomStrategy} from 'angular2/src/render/dom/shadow_dom/shadow_dom_strategy'; import {DOCUMENT_TOKEN} from 'angular2/src/render/dom/dom_renderer'; import {EmulatedUnscopedShadowDomStrategy} from 'angular2/src/render/dom/shadow_dom/emulated_unscoped_shadow_dom_strategy'; import {EmulatedScopedShadowDomStrategy} from 'angular2/src/render/dom/shadow_dom/emulated_scoped_shadow_dom_strategy'; import {NativeShadowDomStrategy} from 'angular2/src/render/dom/shadow_dom/native_shadow_dom_strategy'; @Component({selector:"ez-app"}) @View({ template:"<h1>我是H1,我在组件内</h1>", styles:["h1{color:red}"] }) class EzApp{} var injectables = [ bind(ShadowDomStrategy) .toFactory((doc) => new NativeShadowDomStrategy(doc.head), [DOCUMENT_TOKEN]) ]; bootstrap(EzApp,injectables); </script> </body> </html>
相关文章推荐
- CSS 之rem
- Angular2组件开发—为模板应用样式(二)
- 【css】制作网页图标
- Font Awesome
- 使用CSS画三角形
- css 中的度量单位
- CSS里的各种水平垂直居中
- CSS居中
- html+css
- CSS浮动属性float史上最详细分析
- css reset归纳
- 【转载】css sprite css雪碧图生成工具
- css中图片路径,以及在不同浏览器的兼容问题
- Angular2组件开发—为模板应用样式(一)
- 纯css写的一个简单导航条
- PostCSS深入学习: PostCSS和Sass、Stylus或LESS一起使用
- 在 CSS 预编译器之后:PostCSS
- 纯CSS画的基本图形(矩形、圆形、三角形、多边形、爱心、八卦等)
- css的简写规范
- css样式优先级