AngularJS的一些基本样式初窥_AngularJS

显示和隐藏

在 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>

以上是小编为您精心准备的的内容,在的博客、问答、公众号、人物、课程等栏目也有的相关内容,欢迎继续使用右上角搜索按钮进行搜索angularjs
angularjs改变css样式、angularjs 点击改样式、angularjs控制css样式、angularjs 样式、angularjs 样式切换,以便于您获取更多的相关知识。

时间: 2025-01-26 16:08:50

AngularJS的一些基本样式初窥_AngularJS的相关文章

百度竞价初窥端倪篇

  前情提要:要想花低于竞争对手的钱,取得比竞争对手好的排名,并要最大化得提升转化率,必须做到比对手更细心.更耐心.更勤快,每天不求多,只求质,每天要养成分析数据的习惯! 百度竞价--初窥端倪篇 1,百度竞价--关键词选择漫谈 指数高不一定转化率高,指数低未必转化率低;流量与成交量并不是正比关系,必须要一分为二的去分析;防止恶意点击和无效点击取决于你对关键词的筛选,选词之前要搞清楚你打算把用这个词引进来的人怎么处置!是让他看一眼就走,还是让他哭着淘一些钱给你,这是一个技巧! 比如:我现在需要做竞

《点睛:ActionScript3.0游戏互动编程》——第2章 融会贯通—大话图层样式与滤镜2.1 Photoshop图层样式初体验

第2章 融会贯通-大话图层样式与滤镜 Photoshop和Flash都是杰出的软件,前者静得从容,后者动得洒脱,它们以不同的方式诠释着计算机时代的艺术.下面我们就从Photoshop的图层样式开始我们的艺术创作之路吧! 2.1 Photoshop图层样式初体验 我们打开Photoshop CS5,新建一个尺寸为600*100(单位:像素)的空白文档,使用[横排文字工具]E:\desktop\AS3 Text Effects\snapshots\第4章\4.1\横排文字工具.tif在画布上拖出一个

iOS Animation初窥

引言 一款App是否足够吸引人一方面是需要丰富的内容,另一方面就是要足够人性化的交互,还有一些锦上添花的动画效果,在这里我们讨论一下关于Animation的基本实现,推荐大家试用FaceBook Paper,里面包含了大量的非原生动画效果,Paper团队甚至封装了相应的开源库Pop,让开发者接入自定义动画动画也十分简便.动画的接入要适当,否则用户面对眼花缭乱的动画效果,都会无从下手.这里有个基于Pop的Demo 当然导入一个复杂的第三方库可能有些小题大做,所以我们开始从最基本的创作Animati

初窥Spark

​ 11月26日,IBM资深软件工程师朱志辉老师,在DBA+社群DB2用户群进行了一次主题为"初窥Spark"的线上分享.小编特别整理出其中精华内容,供大家学习交流.同时,也非常感谢朱志辉老师对DBA+社群给予的大力支持.  嘉宾简介   IBM中国开发中心高级软件工程师 具有多年的数据库软件开发设计经验,擅长解决复杂的数据库应用系统问题及性能优化,拥有DB2多项认证和Oracle OCP证书 合作出版了<DB2设计,管理与性能优化艺术><DB2性能管理与实战>

【初窥javascript奥秘之事件冒泡】那些年我们一起冒的泡

原文http://www.cnblogs.com/yexiaochai/archive/2013/04/23/3037064.html [初窥javascript奥秘之事件冒泡]那些年我们一起冒的泡 前言 若是我说会有此文又是因为一次面试的话,我自己都不知道该怎么形容我的心情了,好似我的所有动力皆来自于面试似的. 其实不是这样的,我原来一个项目经理对我说,隔一两个月出去面试下,一来你会知道自己的不足知道怎么提高,二来你就知道自己涨价没. 现在回想起来他说的是很对的,面对这次的团队解散,我反而不那

【初窥javascript奥秘之Ajax】简述下你所知道的Ajax?

原文 http://www.cnblogs.com/yexiaochai/archive/2013/04/24/3037069.html [初窥javascript奥秘之Ajax]简述下你所知道的Ajax? 前言 ajax已经流行很多年了,现在来说它是否已经晚了呢???特别是有这样框架那样框架后,还有几个人认识原生ajax呢?我们每天都会用到的东西你到底对他了解吗? 在最近一次面试上不幸被问到了,原以为很熟悉的东西你会发现你对他根本不熟悉!要说熟悉AJAX的话你需要毫不犹豫回答以下问题: 1 不

[转]Silverlight 2 快报 和 Silverlight 3 初窥

[原文地址]Update on Silverlight 2 - and a glimpse of Silverlight 3 [原文发表日期] Sunday, November 16, 2008 11:01 PM 我们上个月发布了Silverlight 2. 在过去的4个星期里,Silverlight 2的最终版被下载和安装到了超过1亿台用户机器之上.最近还通过微软SMS和微软更新程序发布到了企业管理员手中,允许他们在企业内做自动部署. Internet上超过四分之一的计算机现在安装了某个版本的

基于AngularJS实现iOS8自带的计算器_AngularJS

前言 首先创建angularjs的基本项目就不说了,最好是利用yeoman这个脚手架工具直接生成,如果没有该环境的,当然也可以通过自行下载angularjs的文件引入项目. 实例详解 main.js是项目的主要js文件,所有的js都写在这个文件中,初始化之后,该文件的js代码如下 angular .module('calculatorApp', [ 'ngAnimate', 'ngCookies', 'ngResource', 'ngRoute', 'ngSanitize', 'ngTouch'

详解AngularJS中的表单验证(推荐)_AngularJS

AngularJS自带了很多验证,什么必填,最大长度,最小长度...,这里记录几个有用的正则式验证 1.使用angularjs的表单验证 正则式验证 只需要配置一个正则式,很方便的完成验证,理论上所有的验证都可以用正则式完成 //javascript $scope.mobileRegx = "^1(3[0-9]|4[57]|5[0-35-9]|7[01678]|8[0-9])\\d{8}$"; $scope.emailRegx = "^[a-z]([a-z0-9]*[-_]?