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 相关文章推荐
js 键盘记录实现(兼容FireFox和IE)
Feb 07 Javascript
Javascript 网页水印(非图片水印)实现代码
Mar 01 Javascript
通过js简单实现将一个文本内容转译成加密文本
Oct 22 Javascript
javascript实现切换td中的值
Dec 05 Javascript
JavaScript使用replace函数替换字符串的方法
Apr 06 Javascript
浅谈javascript的Array.prototype.slice.call
Aug 31 Javascript
javascript截图 jQuery插件imgAreaSelect使用详解
May 04 Javascript
带有定位当前位置的百度地图前端web api实例代码
Jun 21 Javascript
一种基于浏览器的自动小票机打印实现方案(js版)
Jul 26 Javascript
详解Vue2 SSR 缓存 Api 数据
Nov 20 Javascript
简单了解Javscript中兄弟ifream的方法调用
Jun 17 Javascript
vue整合百度地图显示指定地点信息
Apr 06 Vue.js
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中神奇的fastcgi_finish_request
2011/05/02 PHP
php匹配字符中链接地址的方法
2014/12/22 PHP
PHP批量修改文件名称的方法分析
2017/02/27 PHP
Redis构建分布式锁
2017/03/28 PHP
phpStudy配置多站点多域名方法及遇到的403错误解决方法
2017/10/19 PHP
PHP实现求解最长公共子串问题的方法
2017/11/17 PHP
PHP实现基于图的深度优先遍历输出1,2,3...n的全排列功能
2017/11/10 PHP
jquery插件之信息弹出框showInfoDialog(成功/错误/警告/通知/背景遮罩)
2013/01/09 Javascript
Jquery ajax执行顺序 返回自定义错误信息(实例讲解)
2013/11/06 Javascript
jquery跟js初始化加载的多种方法及区别介绍
2014/04/02 Javascript
jquery操作HTML5 的data-*的用法实例分享
2014/08/17 Javascript
简单实现兼容各大浏览器的js复制内容到剪切板
2015/09/09 Javascript
基于AngularJS实现iOS8自带的计算器
2016/09/12 Javascript
jQuery过滤选择器用法示例
2016/09/12 Javascript
JS异步文件分片断点上传的实现思路
2016/12/25 Javascript
JavaScript变量类型以及变量作用域详解
2017/08/14 Javascript
js 只比较时间大小的实例
2017/10/26 Javascript
Egg.js 中 AJax 上传文件获取参数的方法
2018/10/10 Javascript
Echarts地图添加引导线效果(labelLine)
2019/09/30 Javascript
vue 检测用户上传图片宽高的方法
2020/02/06 Javascript
easyUI 实现的后台分页与前台显示功能示例
2020/06/01 Javascript
python概率计算器实例分析
2015/03/25 Python
pandas or sql计算前后两行数据间的增值方法
2018/04/20 Python
对Python 除法负数取商的取整方式详解
2018/12/12 Python
浅谈PYTHON 关于文件的操作
2019/03/19 Python
python 采用paramiko 远程执行命令及报错解决
2019/10/21 Python
windows python3安装Jupyter Notebooks教程
2020/04/13 Python
python将unicode和str互相转化的实现
2020/05/11 Python
关于环保的建议书
2014/05/12 职场文书
司法建议书范文
2014/05/13 职场文书
病媒生物防治方案
2014/05/13 职场文书
调解书格式范本
2015/05/20 职场文书
大学组织委员竞选稿
2015/11/21 职场文书
2016入党培训心得体会范文
2016/01/08 职场文书
小学生节约用水倡议书
2019/08/12 职场文书
python使用tkinter实现透明窗体上绘制随机出现的小球(实例代码)
2021/05/17 Python