1、选择框select

在 AngularJS 中我们可以使用 ng-option 指令来创建一个下拉列表,列表项通过对象和数组循环输出,也可以使用ng-repeat 指令来创建下拉列表:

区别:ng-repeat 指令是通过数组来循环 HTML 代码来创建下拉列表,但 ng-options 指令更适合创建下拉列表,它有以下优势:

使用 ng-options 的选项的一个对象, ng-repeat 是一个字符串。

 <div class=" container">
<div ng-app="myApp" ng-controller="ctl">
<select ng-model="selectName" ng-options="x for x in list">
</select>
<br/>
<br/>
<select>
<option ng-repeat="x in list">{{x}}</option>
</select> <br/>
<br/>
<!-- 使用ng-options得到selectedsite是一个对象-->
<select ng-model='selectedsite' ng-options="x.site for x in sites"></select> <br/>
<br/>
<!-- 使用ng-repeat只能得到url这样的字符串-->
<select ng-model="selectedSite">
<option ng-repeat="x in sites">{{x.url}}</option>
</select> </div>
</div> <script>
var app = angular.module('myApp', []);
app.controller('ctl', function ($scope) {
$scope.list = ['hello', 'nihao', 'salaheiyou']
$scope.sites = [
{site: "Google", url: "http://www.google.com"},
{site: "Runoob", url: "http://www.runoob.com"},
{site: "Taobao", url: "http://www.taobao.com"}
];
}); </script>

2、表格

<div class=" container">
<div ng-app="myApp" ng-controller="ctl">
<table>
<tr ng-repeat="siteSelected in sites | orderBy:'url' "> <td>
{{$index+1}}
</td> <td>
<b>
{{siteSelected.site|uppercase}}
</b>
</td> <td>
{{siteSelected.url}}
</td> <td ng-if="$even" style="color: red">
偶数
</td> <td ng-if="$odd" style="color:blue">
奇数
</td> </tr> </table>
</div>
</div> <script>
var app = angular.module('myApp', []);
app.controller('ctl', function ($scope) {
$scope.list = ['hello', 'nihao', 'salaheiyou']
$scope.sites = [
{site: "Taobao", url: "http://www.taobao.com"},
{site: "Google", url: "http://www.google.com"},
{site: "Runoob", url: "http://www.runoob.com"}
];
}); </script> table, th , td {
border: 1px solid grey;
border-collapse: collapse;
padding: 5px;
}
table tr:nth-child(odd) {
background-color: #f1f1f1;
}
table tr:nth-child(even) {
background-color: #ffffff;
}

3、SQL、HTML DOM、事件

<div class=" container">
<div ng-app="myApp" ng-controller="ctl"> <!-- 设置是否可点击,点击状态取决于mySwitch这个值-->
<button ng-disabled="mySwitch">
点我
</button> <!-- mySwtich这个值是checkbox的选中状态-->
<p>
<input type="checkbox" ng-model="mySwitch">按钮
</p> <!-- 显示选中状态-->
<p>
{{mySwitch}}
</p> <!-- 是否可见-->
<p ng-hide="false"> 可见 </p> <p ng-hide="true"> 不可见 </p> <!-- 设置点击事件-->
<button ng-click="count=count+1">点我加1</button>
{{count}} <!-- 隐藏/显示一个按钮-->
<br>
<br>
<button ng-click="toggle()">隐藏/显示</button>
<p ng-show="myVar">看我72变</p>
</div>
</div> <script>
var app = angular.module('myApp', []);
app.controller('ctl', function ($scope) {
$scope.count = 0;
$scope.myVar = true;
$scope.toggle = function () {
$scope.myVar = !$scope.myVar;
}
}); </script>

4、 模块

模块定义了一个应用程序,控制器通常属于一个模块

你可以通过 AngularJS 的 angular.module 函数来创建模块

<div ng-app="myApp">...</div>

<script>

var app = angular.module("myApp", []); 

</script>

"myApp" 参数对应执行应用的 HTML 元素。

可以使用 ng-controller 指令来添加应用的控制器:

<div ng-app="myApp" ng-controller="myCtrl">
{{ firstName + " " + lastName }}
</div> <script> var app = angular.module("myApp", []); app.controller("myCtrl", function($scope) {
$scope.firstName = "John";
$scope.lastName = "Doe";
}); </script>

自定义指令

JavaScript 中应避免使用全局函数。因为他们很容易被其他脚本文件覆盖。

AngularJS 模块让所有函数的作用域在该模块下,避免了该问题

什么时候载入库?

JavaScript 中应避免使用全局函数。因为他们很容易被其他脚本文件覆盖。

AngularJS 模块让所有函数的作用域在该模块下,避免了该问题

7、表单

<!--ng-app 指令定义了 AngularJS 应用 ng-controller 指令定义了应用控制器。-->
<!-- formCtrl 函数设置了 master 对象的初始值,并定义了 reset() 方法。--> <div ng-app="myApp" ng-controller="formCtrl">
<!--novalidate 属性是在 HTML5 中新增的。禁用了使用浏览器的默认验证-->
<!-- novalidate 属性在应用中不是必须的,但是你需要在 AngularJS 表单中使用,用于重写标准的 HTML5 验证。 -->
<form novalidate>
First Name:<br>
<!-- ng-model 指令绑定了两个 input 元素到模型的 user 对象-->
<input type="text" ng-model="user.firstName"><br>
Last Name:<br>
<input type="text" ng-model="user.lastName">
<br><br>
<!-- ng-click 指令调用了 reset() 方法,且在点击按钮时调用。-->
<button ng-click="reset()">RESET</button>
</form>
<p>form = {{user}}</p>
<p>master = {{master}}</p>
</div> <script>
var app = angular.module('myApp', []);
app.controller('formCtrl', function($scope) {
$scope.master = {firstName: "John", lastName: "Doe"};
// reset() 方法设置了 user 对象等于 master 对象。
$scope.reset = function() {
$scope.user = angular.copy($scope.master);
};
$scope.reset();
});
</script>

8、输入验证

 <!--$dirty    表单有填写记录-->
<!--$valid 字段内容合法的-->
<!--$invalid 字段内容是非法的-->
<!--$pristine 表单没有填写记录-->
<form ng-app="myApp" ng-controller="validateCtrl"
name="myForm" novalidate> <p>用户名:<br>
<input type="text" name="user" ng-model="user" required>
<span style="color:red" ng-show="myForm.user.$dirty && myForm.user.$invalid">
<span ng-show="myForm.user.$error.required">用户名是必须的。</span>
</span>
</p> <p>邮箱:<br>
<input type="email" name="email" ng-model="email" required>
<span style="color:red" ng-show="myForm.email.$dirty && myForm.email.$invalid">
<span ng-show="myForm.email.$error.required">邮箱是必须的。</span>
<span ng-show="myForm.email.$error.email">非法的邮箱。</span>
</span>
</p> <p>
<input type="submit"
ng-disabled="myForm.user.$dirty && myForm.user.$invalid ||
myForm.email.$dirty && myForm.email.$invalid">
</p> </form> <script>
var app = angular.module('myApp', []);
app.controller('validateCtrl', function ($scope) {
$scope.user = 'John Doe';
$scope.email = 'john.doe@gmail.com';
});
</script>

9、API

angular.lowercase() 转换字符串为小写
angular.uppercase() 转换字符串为大写
angular.isString() 判断给定的对象是否为字符串,如果是返回 true。
angular.isNumber() 判断给定的对象是否为数字,如果是返回 true。
 <div ng-app="myApp" ng-controller="myCtrl">
<p>{{'original:'+x1}}</p>
<p>{{'xiaoxie:'+ x2 }}</p>
<p>{{'daxie:'+ x3 }}</p>
<p>{{'isnumber:'+ x4 }}</p>
<p>{{'isString:'+ x5 }}</p>
</div> <script>
var app = angular.module('myApp', []);
app.controller('myCtrl', function($scope) {
$scope.x1 = "John";
$scope.x2 = angular.lowercase($scope.x1);
$scope.x3 = angular.uppercase($scope.x1);
$scope.x4 = angular.isNumber($scope.x1);
$scope.x5 = angular.isString($scope.x1);
});
</script>

10、包含

11、动画

21、AngularJs知识点总结 part-3的更多相关文章

  1. Ionic/Angularjs 知识点解析

    Ionic/Angularjs 知识点解析 angular-ui-router(状态跳转) state的定义:(在app.js的config下配置) $stateProvider .state('ap ...

  2. 20、AngularJs知识点总结 part-2

    1.作用域 当你在angularJs中创建控制器时,可以将$scope对象作为一个参数进行传递: scope 是一个 JavaScript 对象,带有属性和方法,这些属性和方法可以在视图和控制器中使用 ...

  3. 19、AngularJs知识点总结 part-1

    1.AngularJs AngularJs是一款JavaScript开源库,由Google维护,用来协助单一页面应用程序: AngularJs的目标是通过MVC模式增强基于浏览器的应用,使开发和测试变 ...

  4. angularjs知识点

    <!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8&quo ...

  5. Part 21 to 22 AngularJS anchorscroll

    Part 21 AngularJS anchorscroll example $anchorscroll service is used to jump to a specified element ...

  6. angularjs 学习小结

    1.过滤器的使用 <!DOCTYPE html> <html> <head> <meta charset="{CHARSET}"> ...

  7. MySQL知识树-支持的数据类型

    本篇学习笔记的主要内容: 介绍MySQL支持的各种数据类型(常用),并讲解其主要特点.   MySQL支持多种数据类型,主要包括数值类型.日期和时间类型.字符串类型. 数值类型 MySQL的数值类型包 ...

  8. LeetCode(194.Transpose File)(awk进阶)

    194. Transpose File Given a text file file.txt, transpose its content. You may assume that each row ...

  9. JS夯实基础:Javascript 变态题解析 (下)

    function sidEffecting(ary) { ary[] = ary[]; } function bar(a,b,c) { c = sidEffecting(arguments); ret ...

随机推荐

  1. Altium_Designer-PCB的覆铜步骤

    1.覆铜的意义     覆铜,就是将PCB上闲置的空间作为基准面,然后用固体铜填充,这些铜区又称为灌铜.敷铜的意义在于,减小地线阻抗,提高抗干扰能力:降低压降,提高电源效率:还有,与地线相连,减小环路 ...

  2. Java中调用MatLab返回值

    当在Java中使用MatLab函数时,由于语言语法的不同,Matlab返回多个数据时,想在Java中获取到并进行使用.查阅了网上资料,翻箱倒柜加上自己实战,得出方法如下: 如MatLab函数返回的是N ...

  3. TeXstudio安装后提示no LaTeX distribution found on this system

    应该是设置一下用户变量,而非系统变量,用TeXLive 2015和MikTeX都不好使,最后设置了用户变量好使了 S:\TeX\MiKTeX 2.9\miktex\bin\x64\ 也是醉醉的 不过等 ...

  4. Gym 100090D Insomnia

    从 n 变到 1,有多少种方案? 打表记忆化. #include <bits/stdc++.h> using namespace std; int n; ]; int dfs(int n) ...

  5. BestCoder Round #91 1002 Lotus and Horticulture

    题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=6012 题意: 这几天Lotus对培养盆栽很感兴趣,于是她想搭建一个温室来满足她的研究欲望. Lotus ...

  6. when 让你跳出异步回调噩梦 node.js下promise/A规范的使用

    其实关于promise 的博客,前端时间专门写了一篇关于 promise 规范的文章,promise规范 让 javascript 中的异步调用更加人性化. 简单回忆下: promise/A规范定义的 ...

  7. 2018.8.3 Java中容易犯错误的问题思考与总结

    Java容易犯错误的问题思考 float型 float f = 3.4 是否正确 不正确,应该用强制类型转换.如下所示:float f = (float)3.4 或float f = 3.4f 在ja ...

  8. (转)ActionContext和ServletActionContext

    前面已经了解到ActionContext是Action执行时的上下文,里面存放着Action在执行时需要用到的对象,我们也称之为广义值栈. Struts2在每次执行Action之前都会创建新的Acti ...

  9. 知识总结和记录——HTML

    文档结构 <!DOCTYPE html> <html lang="zh-CN"> <head> <meta charset="U ...

  10. 学习JavaScript一些资料时,记录一些规范小记

    最近工作不是很忙,所以再深入学学JavaScript,顺便提升一下自己,嘿嘿!主要记录一下学习到的一下编写代码的规范小记吧! 1.声明变量时一定带上var,避免一些错误发生,如变量提升时遇见的问题发生 ...