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 相关文章推荐
JavaScript中数组的排序、乱序和搜索实现代码
Nov 30 Javascript
Javascript获取窗口(容器)的大小及位置参数列举及简要说明
Dec 09 Javascript
javascript控制Div层透明属性由浅变深由深变浅逐渐显示
Nov 12 Javascript
使用GruntJS构建Web程序之Tasks(任务)篇
Jun 06 Javascript
gridview生成时如何去掉style属性中的border-collapse
Sep 30 Javascript
详解Javascript中prototype属性(推荐)
Sep 03 Javascript
ES6新特性之数组、Math和扩展操作符用法示例
Apr 01 Javascript
Vue.js上下滚动加载组件的实例代码
Jul 17 Javascript
jQuery实现的中英文切换功能示例
Jan 11 jQuery
JavaScript设计模式之命令模式实例分析
Jan 16 Javascript
vue登录页面cookie的使用及页面跳转代码
Jul 10 Javascript
基于layPage插件实现两种分页方式浅析
Jul 27 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
使用cookie实现统计访问者登陆次数
2013/06/08 PHP
PHP时间和日期函数详解
2015/05/08 PHP
一键生成各种尺寸Icon的php脚本(实例)
2017/02/08 PHP
javaScript如何处理从java后台返回的list
2014/04/24 Javascript
举例讲解Node.js中的Writable对象
2015/07/29 Javascript
JavaScript Math 对象常用方法总结
2016/04/28 Javascript
Bootstrap模仿起筷首页效果
2016/05/09 Javascript
AngularJS基础 ng-focus 指令简单示例
2016/08/01 Javascript
AngularJS表单和输入验证实例
2016/11/02 Javascript
100行代码理解和分析vue2.0响应式架构
2017/03/09 Javascript
jQuery plugin animsition使用小结
2017/09/14 jQuery
在小程序中使用Echart图表的示例代码
2018/08/02 Javascript
js实现轮播图的完整代码
2020/10/26 Javascript
教你如何编写Vue.js的单元测试的方法
2018/10/17 Javascript
JavaScript查看代码运行效率console.time()与console.timeEnd()用法
2019/01/18 Javascript
Vue响应式原理Observer、Dep、Watcher理解
2019/06/06 Javascript
[45:40]Ti4 冒泡赛第二天NEWBEE vs NaVi 1
2014/07/15 DOTA
使用Python爬了4400条淘宝商品数据,竟发现了这些“潜规则”
2018/03/23 Python
Python实现的微信好友数据分析功能示例
2018/06/21 Python
CentOS 7下安装Python3.6 及遇到的问题小结
2018/11/08 Python
python  ceiling divide 除法向上取整(或小数向上取整)的实例
2019/12/27 Python
python随机模块random的22种函数(小结)
2020/05/15 Python
python中元组的用法整理
2020/06/15 Python
Pycharm中如何关掉python console
2020/10/27 Python
美国最古老的精致书写工具制造商:A.T. Cross(高仕)
2018/01/30 全球购物
Lookfantastic瑞典:英国知名美妆购物网站
2018/04/06 全球购物
Agoda中文官网:安可达(低价预订全球酒店)
2021/01/18 全球购物
易程科技软件测试笔试
2013/03/24 面试题
小学音乐教学反思
2014/02/05 职场文书
内衣营销方案
2014/03/15 职场文书
建筑公司员工自我鉴定
2014/04/08 职场文书
六年级学生期末评语
2014/12/26 职场文书
营销计划书
2015/01/17 职场文书
工作会议通知
2015/04/15 职场文书
为什么MySQL不建议使用SELECT *
2022/04/03 MySQL
MySQL事务的ACID特性以及并发问题方案
2022/07/15 MySQL