AngularJS的一些基本样式初窥


Posted in Javascript onJuly 27, 2015

显示和隐藏

在 Angular 中的一切,都是基于模型的改变,进而通过标识符反映这些变化到界面上。
ng-show 和 ng-hide 可以做相同的事情。显示和隐藏是基于你传递给他们的表达式而定,即,当表达式为 true 时,ng-show 就显示,反之隐藏。当表达式为 true 时,ng-hide 就隐藏,反之显示。这些标识符是通过设置元素的样式 display:block 显示和 display:none 隐藏进行工作的。
CSS类和样式

通过 {{}} 解析来进行数据绑定,从而能够动态地设置类和样式。
ng-class 和 ng-style

在大型项目中,上面的方式会使得难以管理,以至于不得不同时阅读模版和 JavaScript 才能正确地创建 css 。
Angular 提供了 ng-class 和 ng-style 标识符。他们每一个都需要一个表达式。表达式执行的结果可能是下列之一:

  •     一个字符串,表示空间隔开的类名。
  •     一个类名数组
  •     一个类名到布尔值的映射

选中的行

模版中,我们设置 ng-class 的值为 {selected:$index==selectedRow},当模型调用selectedRow 时将匹配 ng-repeat 的 $index,进而显示选中的样式。同样我们设置 ng-click 来通知控制器用户点了哪一行。
src 和 href 建议

建议使用 ng-src 和 ng-href。

<img ng-src="/img/01.png">
<a ng-href="www.segmentfault.com">segmentfault</a>

所有源码

<!DOCTYPE html>
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
  <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
  <title>angular demo</title>
  <script src="http://cdn.bootcss.com/angular.js/1.3.0-beta.8/angular.min.js"></script>
</head>
<body>
  <div id="App1" ng-app="shoppingCart" ng-controller="ShoppingCartController">
    <h1>Your demo</h1>
    <!-- demo 1 -->
    <div ng-show='menuState.show'>another another another</div>
    <button ng-click="test2()">切换</button>

    <hr><!-- demo 2 -->
    <style type="text/css">
      .menu-disabled-true{
        opacity:1;
        color: red;
        -webkit-transition:all 1000ms linear;
        -moz-transition:all 1000ms linear;
        -o-transition:all 1000ms linear;
      }
      .menu-disabled-false{
        opacity: 0;
        -webkit-transition:all 1000ms linear;
        -moz-transition:all 1000ms linear;
        -o-transition:all 1000ms linear;
      }
    </style>
    <div class="menu-disabled-{{isDisabled}}">adfadfadasda</div>
    <button ng-click="test()">隐藏</button>
    <button ng-click="test1()">显示</button>
    <button ng-click="test11()">切换</button>

    <hr><!-- demo 3 -->
    <style type="text/css">
    .error {
      background-color: red;
    }
    .warning {
      background-color: yellow;
    }
    </style>
    <div ng-class='{error:isError, warning:isWarning}'>{{messageText}}</div>
    <button ng-click="showError()">error</button>
    <button ng-click="showWarning()">warning</button>

    <hr><!-- demo 4 -->
    <style type="text/css">
      .selected{
        background-color: lightgreen;
      }
    </style>
    <div ng-repeat="item in items" ng-class='{selected:$index==selectedRow}' ng-click='selectedWhich($index)'>
      <span>{{item.product_name}}</span>
      <span>{{item.price | currency}}</span>
    </div>
  </div>

  <script>
    var shoppingCartModule = angular.module("shoppingCart", [])
    shoppingCartModule.controller("ShoppingCartController",
      function ($scope) {
        // demo 1
        $scope.menuState = {'show':true};
        $scope.test2 = function () {
          $scope.menuState.show = !$scope.menuState.show;
        };

        // demo 2
        $scope.isDisabled = true;
        $scope.test = function () {
          $scope.isDisabled = 'false';
        };
        $scope.test1 = function () {
          $scope.isDisabled = 'true';
        };
        $scope.test11 = function () {
          $scope.isDisabled = !$scope.isDisabled;
        };

        // demo 3
        $scope.isError = false;
        $scope.isWarning = false;
        $scope.messageText = 'default, default';
        $scope.showError = function () {
          $scope.messageText = 'This is an error';
          $scope.isError = true;
          $scope.isWarning = false;
        };
        $scope.showWarning = function () {
          $scope.messageText = 'Just a warning, donot warry';
          $scope.isWarning = true;
          $scope.isError = false;
        };

        // demo 4
        $scope.items = [
          { product_name: "Product 1", price: 50 },
          { product_name: "Product 2", price: 20 },
          { product_name: "Product 3", price: 180 }
        ];
        $scope.selectedWhich = function (row) {
          $scope.selectedRow = row;
        }
      }
    );
  </script>
</body>
</html>
Javascript 相关文章推荐
jquery imgareaselect 使用利用js与程序结合实现图片剪切
Jul 30 Javascript
JavaScript 学习笔记一些小技巧
Mar 28 Javascript
javascript游戏开发之《三国志曹操传》零部件开发(五)可移动地图的实现
Jan 23 Javascript
Jquery获取第一个子元素简单实例
Jun 02 Javascript
bootstrap datepicker限定可选时间范围实现方法
Sep 28 Javascript
Vue和Bootstrap的整合思路详解
Jun 30 Javascript
JS实现移动端判断上拉和下滑功能
Aug 07 Javascript
jQuery实现页码跳转式动态数据分页
Dec 31 jQuery
探索Vue高阶组件的使用
Jan 08 Javascript
Angular网络请求的封装方法
May 22 Javascript
浅析vue 函数配置项watch及函数 $watch 源码分享
Nov 22 Javascript
通过vue手动封装on、emit、off的代码详解
May 29 Javascript
javascript实现网页子页面遍历回调的方法(涉及 window.frames、递归函数、函数上下文)
Jul 27 #Javascript
JavaScript数组对象实现增加一个返回随机元素的方法
Jul 27 #Javascript
使用HTML+CSS+JS制作简单的网页菜单界面
Jul 27 #Javascript
Javascript验证Visa和MasterCard信用卡号的方法
Jul 27 #Javascript
JavaScript实现自动对页面上敏感词进行屏蔽的方法
Jul 27 #Javascript
javascript实现类似于新浪微博搜索框弹出效果的方法
Jul 27 #Javascript
JavaScript动态提示输入框输入字数的方法
Jul 27 #Javascript
You might like
PHP使用Redis替代文件存储Session的方法
2017/02/15 PHP
PHP下载远程图片的几种方法总结
2017/04/07 PHP
php设计模式之观察者模式定义与用法经典示例
2019/09/19 PHP
点击下载链接 弹出页面实现代码
2009/10/01 Javascript
单击和双击事件的冲突处理示例代码
2014/04/03 Javascript
ext combobox动态加载数据库数据(附前后台)
2014/06/17 Javascript
JavaScript中实现map功能代码分享
2015/06/11 Javascript
jQuery模拟原生态App上拉刷新下拉加载更多页面及原理
2015/08/10 Javascript
JS代码防止SQL注入的方法(超简单)
2016/04/12 Javascript
jfinal与bootstrap的登出实战详解
2017/11/27 Javascript
vue中实现移动端的scroll滚动方法
2018/03/03 Javascript
性能优化篇之Webpack构建速度优化的建议
2019/04/03 Javascript
环形加载进度条封装(Vue插件版和原生js版)
2019/12/04 Javascript
vue2.* element tabs tab-pane 动态加载组件操作
2020/07/19 Javascript
vue中echarts的用法及与elementui-select的协同绑定操作
2020/11/17 Vue.js
Vue中使用wangeditor富文本编辑的问题
2021/02/07 Vue.js
[01:14:30]TNC vs VG 2019国际邀请赛淘汰赛 胜者组赛BO3 第二场 8.20.mp4
2019/08/22 DOTA
详解Python pygame安装过程笔记
2017/06/05 Python
Python模拟三级菜单效果
2017/09/11 Python
python读取文件名并改名字的实例
2019/01/07 Python
Python turtle画图库&amp;&amp;画姓名实例
2020/01/19 Python
Python re正则表达式元字符分组()用法分享
2020/02/10 Python
python简单的三元一次方程求解实例
2020/04/02 Python
Python+OpenCV图像处理——实现轮廓发现
2020/10/23 Python
HTML5全屏(Fullscreen)API详细介绍
2015/04/24 HTML / CSS
HTML块级标签汇总(小篇)
2016/07/13 HTML / CSS
viagogo意大利票务平台:演唱会、体育比赛、戏剧门票
2018/01/26 全球购物
英国婴儿及儿童产品商店:TigerParrot
2019/03/04 全球购物
专营店会计助理岗位职责
2013/11/29 职场文书
优秀少先队员主要事迹材料
2014/05/28 职场文书
赵乐秦在党的群众路线教育实践活动总结大会上的讲话稿
2014/10/25 职场文书
2015新年联欢晚会开场白
2014/12/14 职场文书
个人股份转让协议书范本
2015/01/28 职场文书
浅谈Redis在直播场景的实践方案
2021/04/27 Redis
Ajax异步刷新功能及简单案例
2021/11/20 Javascript
MySQL创建管理子分区
2022/04/13 MySQL