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 面向对象编程基础:封装
Aug 21 Javascript
jQuery编辑器KindEditor4.1.4代码高亮显示设置教程
Mar 01 Javascript
MVVM模式中ViewModel和View、Model有什么区别?
Jun 19 Javascript
jQuery选择器及jquery案例详解(必看)
May 20 Javascript
浅谈javascript运算符——条件,逗号,赋值,()和void运算符
Jul 15 Javascript
js检查是否关闭浏览器的方法
Aug 02 Javascript
js 中获取制定的cook信息实现方法
Nov 19 Javascript
jQuery获取table下某一行某一列的值实现代码
Apr 07 jQuery
JS中图片压缩的方法小结
Nov 14 Javascript
JS实现碰撞检测的方法分析
Jan 19 Javascript
解决vue+element 键盘回车事件导致页面刷新的问题
Aug 25 Javascript
JavaScript Window浏览器对象模型原理解析
May 30 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
phpMyAdmin 安装配置方法和问题解决
2009/06/08 PHP
QQ登录 PHP OAuth示例代码
2011/07/20 PHP
php中apc缓存使用示例
2013/12/25 PHP
smarty中英文多编码字符截取乱码问题解决方法
2014/10/28 PHP
PHP判断浏览器、判断语言代码分享
2015/03/05 PHP
分享五个PHP7性能优化提升技巧
2015/12/07 PHP
使用phpexcel类实现excel导入mysql数据库功能(实例代码)
2016/05/12 PHP
[IE&amp;FireFox兼容]JS对select操作
2007/01/07 Javascript
基于jquery的让textarea自适应高度的插件
2010/08/03 Javascript
javascript 弹出的窗口返回值给父窗口具体实现
2013/11/23 Javascript
JavaScript实现的双向跨域插件分享
2015/01/31 Javascript
javascript判断并获取注册表中可信任站点的方法
2015/06/01 Javascript
JQuery插入DOM节点的方法
2015/06/11 Javascript
JavaScript中setUTCFullYear()方法的使用简介
2015/06/12 Javascript
jQuery+HTML5加入购物车代码分享
2020/10/29 Javascript
在JavaScript中模拟类(class)及类的继承关系
2016/05/20 Javascript
webpack常用配置项配置文件介绍
2016/11/07 Javascript
详解JavaScript对象的深浅复制
2017/03/30 Javascript
JavaScript实现为事件句柄绑定监听函数的方法分析
2017/11/14 Javascript
基于Vuex无法观察到值变化的解决方法
2018/03/01 Javascript
修改npm全局安装模式的路径方法
2018/05/15 Javascript
vue 中动态绑定class 和 style的方法代码详解
2018/06/01 Javascript
基于Taro的微信小程序模板消息-获取formId功能模块封装实践
2019/07/15 Javascript
angular8.5集成TinyMce5的使用和详细配置(推荐)
2020/11/16 Javascript
[04:22]DOTA2大事件之护国神翼
2020/08/14 DOTA
python 数据的清理行为实例详解
2017/07/12 Python
Python并发之多进程的方法实例代码
2018/08/15 Python
对Python中plt的画图函数详解
2018/11/07 Python
Python 2/3下处理cjk编码的zip文件的方法
2019/04/26 Python
python opencv 图像拼接的实现方法
2019/06/27 Python
opencv 图像礼帽和图像黑帽的实现
2020/07/07 Python
Python绘制词云图之可视化神器pyecharts的方法
2021/02/23 Python
Foot Locker加拿大官网:美国知名运动产品零售商
2019/07/21 全球购物
自荐信格式
2013/12/01 职场文书
品牌宣传方案
2014/03/21 职场文书
文明礼仪主题班会
2015/08/13 职场文书