AngularJS笔记3-- ng-show ng-class

旧城冷巷雨未停 提交于 2020-01-07 12:57:27

【推荐】2019 Java 开发者跳槽指南.pdf(吐血整理) >>>

ng-show / ng-hide

通过绑定一个布尔型的变量,显示或隐藏HTML元素。

当 note.assignee为 true ( 也可以是非空字符串·,非0数字,非空JS对象等)时,assignee所对应的span元素可见。

ng-class

用于选择性的从HTML中添加或者删除CSS class . ng-class指令可接收字符串或对象作为参数

1.参数为字符串:直接把它作为CSS class名称应用到UI中

2.参数是对象,angularJS会检查该对象的每一个属性及它所对应的值, 根据值是false 还是true来决定到底添加还是删除CSS class

本例:参数为对象,包含两个属性:当 note.done为true时,会添加名为 done的 css class 并删除 pending .

反之当note.done为false 时添加pending 删除done

 

<!DOCTYPE html>
<html ng-app="notesApp">
    <head>
        <meta charset="UTF-8">
        <title></title>
        <script src="js/angular.min.js"></script>
        <script src="js/jquery-3.1.1.min.js"></script>
        <style>
            .done{
                background-color:chocolate;     /*巧克力色*/
            }
            .pending{ background-color: aquamarine;}/*蓝绿色*/
        </style>
        </head>
    <body ng-controller="MainCtrl as ctrl">
        <div ng-repeat=" note in ctrl.notes" ng-class=" ctrl.getNoteClass(note.done)">

<!--第三个为done属性,其余为pending-->
            <span class="label">{{note.label}}</span>
            <span class="assignee"
                ng-show="note.assignee"  <!--第一个第四个不为空-->
                ng-bind="note.assignee"></span>
            <span></span>
        </div>
        <script>
            angular.module('notesApp',[]).controller('MainCtrl',[
            
            function(){
                var self=this;
                self.notes=[
                {label:'first',done:false,assignee:'Shyam'},
                {label:'second',done:false},
                {label:'third',done:true},
                {label:'last',done:false,assignee:'brad'}];
                
                self.getNoteClass=function(status){
                    return{   <!--对象-->包含两个属性
                        done:status,
                        pending: !status
                    }

                }
            }])
        </script>
    </body>
</html>

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!