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实现ASP分页函数 HTML分页函数
Sep 22 Javascript
新老版本juqery获取radio对象的方法
Mar 01 Javascript
jquery的Tooltip插件 qtip使用详细说明
Sep 08 Javascript
异步动态加载js与css文件的js代码
Sep 15 Javascript
js实现基于正则表达式的轻量提示插件
Aug 29 Javascript
jQuery实现产品对比功能附源码下载
Aug 09 Javascript
基于jQuery实现火焰灯效果导航菜单
Jan 04 Javascript
JavaScript中日常收集常见的10种错误(推荐)
Jan 08 Javascript
浅谈原生JS实现jQuery的animate()动画示例
Mar 08 Javascript
Node.js中package.json中库的版本号(~和^)
Apr 02 Javascript
微信小程序事件对象中e.target和e.currentTarget的区别详解
May 08 Javascript
如何正确解决VuePress本地访问出现资源报错404的问题
Dec 03 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
smarty模板引擎从php中获取数据的方法
2015/01/22 PHP
利用PHP生成静态html页面的原理
2016/09/30 PHP
Yii框架实现记录日志到自定义文件的方法
2017/05/23 PHP
判断JavaScript对象是否可用的最正确方法分析
2008/10/03 Javascript
超级有用的13个基于jQuery的内容滚动插件和教程
2011/07/31 Javascript
下拉菜单点击实现连接跳转功能的js代码
2013/05/19 Javascript
用javascript判断IE版本号简单实用且向后兼容
2013/09/11 Javascript
JS 实现导航栏悬停效果
2013/09/23 Javascript
JS实现统计复选框选中个数并提示确定与取消的方法
2015/07/01 Javascript
js实现浮动在网页右侧的简洁QQ在线客服代码
2015/09/04 Javascript
基于jQuery实现点击最后一行实现行自增效果的表格
2016/01/12 Javascript
JS简单测试循环运行时间的方法
2016/09/04 Javascript
Vuejs第十三篇之组件——杂项
2016/09/09 Javascript
纯js实现动态时间显示
2020/09/07 Javascript
Webpack打包css后z-index被重新计算的解决方法
2017/06/18 Javascript
vue中实现左右联动的效果
2018/06/22 Javascript
JavaScript 截取字符串代码实例
2019/09/05 Javascript
微信小程序点击按钮动态切换input的disabled禁用/启用状态功能
2020/03/07 Javascript
JS数组及对象遍历方法代码汇总
2020/06/16 Javascript
vue 解决兄弟组件、跨组件深层次的通信操作
2020/07/27 Javascript
Vue中使用JsonView来展示Json树的实例代码
2020/11/16 Javascript
用Python进行基础的函数式编程的教程
2015/03/31 Python
用Python实现一个简单的能够上传下载的HTTP服务器
2015/05/05 Python
Python中表示字符串的三种方法
2017/09/06 Python
对python3 中方法各种参数和返回值详解
2018/12/15 Python
Django Model中字段(field)的各种选项说明
2020/05/19 Python
python爬虫scrapy基本使用超详细教程
2021/02/20 Python
Infababy英国:婴儿推车、Travel System婴儿车和婴儿汽车座椅销售
2018/05/23 全球购物
Java的五个基础面试题
2016/02/26 面试题
数据库设计的包括哪两种,请分别进行说明
2016/07/15 面试题
高中生自我评语大全
2014/01/19 职场文书
数学教师个人工作总结
2015/02/06 职场文书
2015年前台文员工作总结
2015/05/18 职场文书
毕业实习感受与体会
2015/05/26 职场文书
Python中Matplotlib的点、线形状、颜色以及绘制散点图
2022/04/07 Python
MySQL 数据表操作
2022/05/04 MySQL