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代码
Sep 17 Javascript
JavaScript 组件之旅(四):测试 JavaScript 组件
Oct 28 Javascript
JavaScript中setAttribute用法介绍
Jul 20 Javascript
javascript实现判断鼠标的状态
Jul 10 Javascript
jQuery获取复选框被选中数量及判断选择值的方法详解
May 25 Javascript
jQuery实现背景弹性滚动的导航效果
Jun 01 Javascript
用js读写cookie的简单方法(推荐)
Aug 08 Javascript
JS短信验证码倒计时功能的实现(没有验证码,只有倒计时)
Oct 27 Javascript
Angular2 Service实现简单音乐播放器服务
Feb 24 Javascript
vue项目中应用ueditor自定义上传按钮功能
Apr 27 Javascript
Electron 调用命令行(cmd)
Sep 23 Javascript
node.js使用net模块创建服务器和客户端示例【基于TCP协议】
Feb 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 urlencode()与urldecode()函数字符编码原理详解
2011/12/06 PHP
非常精妙的PHP递归调用与静态变量使用
2012/12/16 PHP
php IP转换整形(ip2long)的详解
2013/06/06 PHP
PHP中strtr字符串替换用法详解
2014/11/26 PHP
PHP SPL标准库之接口(Interface)详解
2015/05/11 PHP
PHP实现基于mysqli的Model基类完整实例
2016/04/08 PHP
针对多用户实现头像上传功能PHP代码 适用于登陆页面制作
2016/08/17 PHP
php empty 函数判断结果为空但实际值却为非空的原因解析
2018/05/28 PHP
JS 自定义函数缺省值的设置方法
2010/05/05 Javascript
jquery ajax return没有返回值的解决方法
2011/10/20 Javascript
jquery验证表单中的单选与多选实例
2013/08/18 Javascript
JavaScript中输出标签的方法
2014/08/27 Javascript
jquery实现表单输入时提示文字滑动向上效果
2015/08/10 Javascript
jQuery插件WebUploader实现文件上传
2016/11/07 Javascript
JQuery页面随滚动条动态加载效果的简单实现(推荐)
2017/02/08 Javascript
jQuery实现动态生成表格并为行绑定单击变色动作的方法
2017/04/17 jQuery
详解Vue中状态管理Vuex
2017/05/11 Javascript
在Swiper内如何制作CSS3动画效果示例代码
2017/12/07 Javascript
详解如何实现一个简单的 vuex
2018/02/10 Javascript
Python性能优化技巧
2015/03/09 Python
恢复百度云盘本地误删的文件脚本(简单方法)
2017/10/21 Python
python二进制读写及特殊码同步实现详解
2019/10/11 Python
Python pygame绘制文字制作滚动文字过程解析
2019/12/12 Python
python 实现图片上传接口开发 并生成可以访问的图片url
2019/12/18 Python
pytorch动态网络以及权重共享实例
2020/01/06 Python
Python+appium框架原生代码实现App自动化测试详解
2020/03/06 Python
html5中的input新属性range使用记录
2014/09/05 HTML / CSS
h5调用摄像头的实现方法
2016/06/01 HTML / CSS
6PM官网:折扣鞋、服装及配饰
2018/08/03 全球购物
Linux上比较文件的命令都有哪些
2013/09/28 面试题
酒吧副总经理岗位职责
2013/12/10 职场文书
银行优秀员工事迹
2014/02/06 职场文书
社区关爱留守儿童活动方案
2014/08/22 职场文书
2015年打非治违工作总结
2015/04/02 职场文书
2015年检验科工作总结
2015/04/27 职场文书
初中英语教学反思范文
2016/02/15 职场文书