博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
Angular从零到一2.5 验证结果的样式自定义
阅读量:7060 次
发布时间:2019-06-28

本文共 1176 字,大约阅读时间需要 3 分钟。

2.5 验证结果的样式自定义

如果我们在开发工具中查看网页源码,可以看到经过渲染后的控件HTML代码,如图 2.11所示。

 

图 2.11 验证的样式

用户名控件的HTML代码是下面的样子:在验证结果为false时input的样式是ng-invalid:

<input

  name="username"

  class="ng-pristine ng-invalid ng-touched"

  required=""

  type="text"

  minlength="3"

  ng-reflect-minlength="3"

  ng-reflect-name="username">

类似地可以实验一下,填入一些字符满足验证要求之后,看input的HTML是下面的样子,在验证结果为true时input的样式是ng-valid:

<input

  name="username"

  class="ng-touched ng-dirty ng-valid"

  required=""

  type="text"

  ng-reflect-model="ssdsds"

  minlength="3"

  ng-reflect-minlength="3"

  ng-reflect-name="username">

知道这个后,我们可以自定义不同验证状态下的控件样式。在组件的修饰符中把styles数组改写一下:

styles: ['

  .ng-invalid{

    border: 3px solid red;

  }

  .ng-valid{

    border: 3px solid green;

  }

']

保存一下,返回浏览器可以看到,验证不通过时,如图2.12所示。

 

图2.12 验证失败的样式

验证通过时是这样的,如图 2.13所示。

 

图2.13 验证通过的样式

最后说一下,我们看到这样设置完样式后连form和fieldset都一起设置了,这是由于form和fieldset也在样式中应用了.ng-valid和.ng-valid,那怎么解决呢?只需要在.ng-valid加上input即可,这表明应用于input类型控件并且class引用了ng-invalid的元素,如下所示:

styles: ['

  input.ng-invalid{

    border: 3px solid red;

  }

  input.ng-valid{

    border: 3px solid green;

  }

']

很多开发人员不太了解CSS,其实CSS还是比较简单的,我建议先从Selector开始看,Selector的概念弄懂后Angular 2的开发中用CSS就会顺畅很多。具体可见W3School中对于CSS Selctor的参考和https://css-tricks.com/multiple-class-id-selectors/。

转载地址:http://qdbll.baihongyu.com/

你可能感兴趣的文章
再谈数据外泄和数据库安全
查看>>
Java 程序优化:字符串操作、基本运算方法等优化策略
查看>>
[ASP.NET MVC]通过对HtmlHelper扩展简化“列表控件”的绑定
查看>>
[译] 关于 React Router 4 的一切
查看>>
vivo联手火星情报局打造最强粉丝嘉年华:超级装备X20惊艳全场
查看>>
本田推出电动车和多功能移动机器人,2019年上市
查看>>
将DJANGO管理界面的filter_horizontal移到前面来复用
查看>>
苹果手机定位用户行迹:是否对信息安全构成威胁?
查看>>
金风科技澳洲首座20兆瓦光伏电站将于2017年投产
查看>>
Java 代理
查看>>
《Effective Debugging:软件和系统调试的66个有效方法》——第12条:将复杂的测试场景自动化...
查看>>
企业物联网安全的四个关键步骤
查看>>
盗版的软件更易被攻击 勒索钱财是黑客惯用形式
查看>>
SPI绿能宝与金沙江资本签署5亿美元可转债协议
查看>>
中英专家建言:未来城市发展要智慧化“留白”
查看>>
象棋中马行走路线的测试用例设计
查看>>
乌当区前三季度大数据产业实现产值60亿元
查看>>
可以拖动的弹出窗
查看>>
Tiny之Web工程构建
查看>>
android 的android httpClient详解
查看>>