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 相关文章推荐
用JQuery 实现的自定义对话框
Mar 24 Javascript
项目实践之javascript技巧
Dec 06 Javascript
简介BootStrap model弹出框的使用
Apr 27 Javascript
jQuery实现图像旋转动画效果
May 29 Javascript
纯css下拉菜单 无需js
Aug 15 Javascript
深入理解ES6的迭代器与生成器
Aug 19 Javascript
Angular模版驱动表单的使用总结
May 05 Javascript
详解vue-cli中模拟数据的两种方法
Jul 03 Javascript
Vue-CLI项目中路由传参的方式详解
Sep 01 Javascript
vue element-ui实现动态面包屑导航
Dec 23 Javascript
VUE使用axios调用后台API接口的方法
Aug 03 Javascript
利用JavaScript为句子加标题的3种方法示例
Jan 05 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
mysql5的sql文件导入到mysql4的方法
2008/10/19 PHP
PHP访问Google Search API的方法
2015/03/05 PHP
php实现httpRequest的方法
2015/03/13 PHP
php将图片文件转换成二进制输出的方法
2015/06/10 PHP
php获得文件夹下所有文件的递归算法的简单实例
2016/11/01 PHP
yii2-GridView在开发中常用的功能及技巧总结
2017/01/07 PHP
在Mac OS下搭建LNMP开发环境的步骤详解
2017/03/10 PHP
给ListBox添加双击事件示例代码
2013/12/02 Javascript
ie7+背景透明文字不透明超级简单的实现方法
2014/01/17 Javascript
JavaScript中eval()函数用法详解
2015/12/14 Javascript
JavaScript函数中关于valueOf和toString的理解
2016/06/14 Javascript
浅谈window.onbeforeunload() 事件调用ajax
2016/06/29 Javascript
chrome下判断点击input上标签还是其余标签的实现方法
2016/09/18 Javascript
微信小程序 Storage API实例详解
2016/10/02 Javascript
angular+ionic 的app上拉加载更新数据实现方法
2017/01/16 Javascript
vue组件如何被其他项目引用
2017/04/13 Javascript
jQuery实现鼠标滑过预览图片大图效果的方法
2017/04/26 jQuery
解决vue打包之后静态资源图片失效的问题
2018/02/21 Javascript
详解Node使用Puppeteer完成一次复杂的爬虫
2018/04/18 Javascript
javascript实现支付宝滑块验证码效果
2020/07/24 Javascript
使用graphics.py实现2048小游戏
2015/03/10 Python
Python 用Redis简单实现分布式爬虫的方法
2017/11/23 Python
如何安装多版本python python2和python3共存以及pip共存
2018/09/18 Python
python得到电脑的开机时间方法
2018/10/15 Python
Python爬取智联招聘数据分析师岗位相关信息的方法
2019/08/13 Python
Python3 assert断言实现原理解析
2020/03/02 Python
保密协议书范本
2014/04/22 职场文书
食品工程专业求职信
2014/06/15 职场文书
机电专业毕业生自我鉴定2014
2014/10/04 职场文书
2014小学数学教师个人工作总结
2014/12/18 职场文书
小学生作文之《压岁钱的烦恼》
2019/09/27 职场文书
HTML+VUE分页实现炫酷物联网大屏功能
2021/05/27 Vue.js
教你用Python+selenium搭建自动化测试环境
2021/06/18 Python
js基础语法与maven项目配置教程案例
2021/07/15 Javascript
大型强子对撞机再次重启探索“第五种自然力”
2022/04/29 数码科技
keepalived + nginx 实现高可用方案
2022/12/24 Servers