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 动态加载脚本的4种方法
May 05 Javascript
jQuery一步一步实现跨浏览器的可编辑表格,支持IE、Firefox、Safari、Chrome、Opera
Aug 28 Javascript
Jquery replace 字符替换实现代码
Dec 02 Javascript
异步动态加载JS并运行(示例代码)
Dec 13 Javascript
Javascript中实现String.startsWith和endsWith方法
Jun 10 Javascript
JS实现横向拉伸动感伸缩菜单效果代码
Sep 04 Javascript
理解JavaScript中Promise的使用
Jan 18 Javascript
使用Object.defineProperty实现简单的js双向绑定
Apr 15 Javascript
HTML5 实现的一个俄罗斯方块实例代码
Sep 19 Javascript
微信小程序 window_x64环境搭建
Sep 30 Javascript
jquery动态赋值id与动态取id方法示例
Aug 21 jQuery
微信小程序tabBar设置实例解析
Nov 14 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中文字符截取防乱码
2008/03/28 PHP
解析php时间戳与日期的转换
2013/06/06 PHP
PHP微信模板消息操作示例
2017/06/29 PHP
php mysql PDO 查询操作的实例详解
2017/09/23 PHP
PHP PDOStatement::getColumnMeta讲解
2019/02/01 PHP
php+redis实现消息队列功能示例
2019/09/19 PHP
Javascript 篱式条件判断
2008/08/22 Javascript
javascript 拖放效果实现代码
2010/01/22 Javascript
Javascript 面向对象 继承
2010/05/13 Javascript
基于jquery完美拖拽,可返回拖动轨迹
2012/03/29 Javascript
firefox下jQuery UI Autocomplete 1.8.*中文输入修正方法
2012/09/19 Javascript
innerHTML与jquery里的html()区别介绍
2012/10/12 Javascript
js/html光标定位的实现代码
2013/09/23 Javascript
jquery实现瀑布流效果分享
2014/03/26 Javascript
JavaScript中的条件判断语句使用详解
2015/06/03 Javascript
jQuery选择器总结之常用元素查找方法
2016/08/04 Javascript
原生JS简单实现ajax的方法示例
2016/11/29 Javascript
js将键值对字符串转为json字符串的方法
2018/03/30 Javascript
如何从0开始用node写一个自己的命令行程序
2018/12/29 Javascript
[37:50]VP vs TNC Supermajor小组赛B组 BO3 第一场 6.2
2018/06/03 DOTA
Python计算三角函数之asin()方法的使用
2015/05/15 Python
Python 异常处理的实例详解
2017/09/11 Python
详解Python 解压缩文件
2019/04/09 Python
快速了解Python开发环境Spyder
2020/06/29 Python
open_basedir restriction in effect. 原因与解决方法
2021/03/14 PHP
html5的canvas方法使用指南
2014/12/15 HTML / CSS
Kidsroom台湾:来自德国的婴儿用品
2017/12/11 全球购物
总账会计岗位职责
2014/03/13 职场文书
团队精神的演讲稿
2014/05/14 职场文书
环卫工作汇报材料
2014/10/28 职场文书
保管员岗位职责
2015/02/14 职场文书
小学毕业感言100字
2015/07/30 职场文书
nginx location优先级的深入讲解
2021/03/31 Servers
mysql批量新增和存储的方法实例
2021/04/07 MySQL
解决Jenkins集成SonarQube遇到的报错问题
2021/07/15 Java/Android
JavaScript 与 TypeScript之间的联系
2021/11/27 Javascript