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两段代码,两个小技巧
Feb 04 Javascript
JavaScript基础篇之变量作用域、传值、传址的简单介绍与实例
Jun 29 Javascript
javascript定义变量时加var与不加var的区别
Dec 22 Javascript
IE下支持文本框和密码框placeholder效果的JQuery插件分享
Jan 31 Javascript
JS图片放大效果简单实现代码
Sep 08 Javascript
浅谈React Native Flexbox布局(小结)
Jan 08 Javascript
解决vue-cli创建项目的loader问题
Mar 13 Javascript
基于vue的验证码组件的示例代码
Jan 22 Javascript
Vue.js 中的实用工具方法【推荐】
Jul 04 Javascript
微信小程序 导入图标实现过程详解
Oct 11 Javascript
在vue中使用axios实现post方式获取二进制流下载文件(实例代码)
Dec 16 Javascript
vue实现书本翻页动画效果实例详解
Apr 08 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
Win2000+Apache+MySql+PHP4+PERL安装使用小结
2006/10/09 PHP
php 文章采集正则代码
2009/12/28 PHP
PHP处理postfix邮件内容的方法
2015/06/16 PHP
php实现的递归提成方案实例
2015/11/14 PHP
PHP抽象类基本用法示例
2018/12/28 PHP
PHP实现读取文件夹及批量重命名文件操作示例
2019/04/15 PHP
刷新页面实现方式总结(HTML,ASP,JS)
2008/11/13 Javascript
精通JavaScript 纠正 cleanWhitespace函数
2010/03/11 Javascript
xheditor与validate插件冲突的解决方案
2010/04/15 Javascript
js 回车提交表单两种实现方法
2012/12/31 Javascript
为jQuery添加Webkit的触摸的方法分享
2014/02/02 Javascript
js实现类似菜单风格的TAB选项卡效果代码
2015/08/28 Javascript
JavaScript各类型的关系图解
2015/10/16 Javascript
详解vue-resource promise兼容性问题
2017/06/20 Javascript
vue params、query传参使用详解
2017/09/12 Javascript
vue中使用heatmapjs的示例代码(结合百度地图)
2018/09/05 Javascript
详解nodejs 配置文件处理方案
2019/01/02 NodeJs
JavaScript手写数组的常用函数总结
2020/11/22 Javascript
Vue实现省市区三级联动
2020/12/27 Vue.js
Python重新引入被覆盖的自带function
2014/07/16 Python
Java多线程编程中ThreadLocal类的用法及深入
2016/06/21 Python
Python一句代码实现找出所有水仙花数的方法
2018/11/13 Python
python判断输入日期为第几天的实例
2018/11/13 Python
Python中正则表达式的用法总结
2019/02/22 Python
Python PIL读取的图像发生自动旋转的实现方法
2019/07/05 Python
如何不用安装python就能在.NET里调用Python库
2019/07/12 Python
解决python web项目意外关闭,但占用端口的问题
2019/12/17 Python
Vero Moda西班牙官方购物网站:丹麦BESTSELLER旗下知名女装品牌
2018/04/27 全球购物
小孩百日宴答谢词
2014/01/15 职场文书
人事任命书范文
2014/06/04 职场文书
领导班子民主生活会整改措施(工商局)
2014/09/21 职场文书
2016年5月份红领巾广播稿
2015/12/21 职场文书
导游词之无锡梅园
2019/11/28 职场文书
python批量创建变量并赋值操作
2021/06/03 Python
MySQL实例精讲单行函数以及字符数学日期流程控制
2021/10/15 MySQL
Mysql数据库表中为什么有索引却没有提高查询速度
2022/02/24 MySQL