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 相关文章推荐
Mootools 1.2教程 设置和获取样式表属性
Sep 15 Javascript
JavaScript EasyPager 分页函数
May 25 Javascript
functional继承模式 摘自javascript:the good parts
Jun 20 Javascript
元素绑定click点击事件方法
Jun 08 Javascript
VUEJS实战之利用laypage插件实现分页(3)
Jun 13 Javascript
浅谈Vue.js
Mar 02 Javascript
JavaScript数据结构之二叉树的删除算法示例
Apr 13 Javascript
Angular 2父子组件之间共享服务通信的实现
Jul 04 Javascript
完美实现js拖拽效果 return false用法详解
Jul 28 Javascript
基于JavaScript实现表格滚动分页
Nov 22 Javascript
浅谈实现在线预览PDF的几种解决办法
Aug 10 Javascript
vant 时间选择器--开始时间和结束时间实例
Nov 04 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下几种删除目录的方法总结
2007/08/19 PHP
《PHP编程最快明白》第二讲 数字、浮点、布尔型、字符串和数组
2010/11/01 PHP
解析阿里云ubuntu12.04环境下配置Apache+PHP+PHPmyadmin+MYsql
2013/06/26 PHP
php上传图片获取路径及给表单字段赋值的方法
2016/01/23 PHP
ThinkPHP5与单元测试PHPUnit使用详解
2020/02/23 PHP
jMessageBox 基于jQuery的窗口插件
2009/12/09 Javascript
Jquery replace 字符替换实现代码
2010/12/02 Javascript
Javascript new Date().valueOf()的作用与时间戳由来详解
2013/04/24 Javascript
jQuery实现长文字部分显示代码
2013/05/13 Javascript
ActiveX控件与Javascript之间的交互示例
2014/06/04 Javascript
根据当前时间在jsp页面上显示上午或下午
2014/08/18 Javascript
nodejs爬虫抓取数据乱码问题总结
2015/07/03 NodeJs
详解javascript实现自定义事件
2016/01/19 Javascript
BootStrap Progressbar 实现大文件上传的进度条的实例代码
2016/06/27 Javascript
Node.js与MySQL交互操作及其注意事项
2016/10/05 Javascript
jQuery中DOM节点删除之empty与remove
2017/01/20 Javascript
深入剖析Express cookie-parser中间件实现示例
2018/02/01 Javascript
JS尾递归的实现方法及代码优化技巧
2019/01/19 Javascript
全面了解JavaScript的作用域链
2019/04/03 Javascript
vue-cli3项目升级到vue-cli4 的方法总结
2020/03/19 Javascript
javascript实现简易数码时钟
2020/03/30 Javascript
Vue中添加滚动事件设置的方法详解
2020/09/14 Javascript
vue实现验证用户名是否可用
2021/01/20 Vue.js
Python实例分享:快速查找出被挂马的文件
2014/06/08 Python
Python 自动化表单提交实例代码
2017/06/08 Python
python pands实现execl转csv 并修改csv指定列的方法
2018/12/12 Python
使用apiDoc实现python接口文档编写
2019/11/19 Python
CSS3 3D旋转rotate效果实例介绍
2016/05/03 HTML / CSS
主要的Ajax框架都有什么
2013/11/14 面试题
Java程序员面试题
2013/07/15 面试题
高中数学教学反思
2014/01/30 职场文书
党员先进性教育整改措施
2014/09/18 职场文书
试用期自我评价怎么写
2015/03/10 职场文书
2016年度优秀辅导员事迹材料
2016/02/26 职场文书
win11如何查看端口是否被占用? Win11查看端口是否占用的技巧
2022/04/05 数码科技
Python中的 enumerate和zip详情
2022/05/30 Python