【AngularJS】—— 2 初识AngularJs(续)

前一篇了解了AngularJS的一些简单的使用,这里继续跟着w3c学习一下剩下的内容。

  本篇根据w3cschool.cc继续学习AngularJS剩余的内容,包括:

  1 事件

  2 模块

  3 表单

  4 数据验证

  5 bootstrap CSS风格

  6 include包含其他页面

  7 应用程序

  8 参考手册

  

  首先看一下html的事件

  关于html的事件,文中给出了三个例子,点击、隐藏、显示。使用方法基本相同:

  先看一下点击的例子,点击按钮后,会触发ng-click内的方法,进行累计加一:

<div ng-app="" ng-controller="myController">
<button ng-click="count = count + 1">点我!</button>
<p>{{ count }}</p>
</div>

  对于ng-hide和ng-show原理相同,都是指定一个bool值,true或false。

  初始的时候myVar的值为false,因此并不隐藏,每次点击myVar都会改变为相反的值,达到现实隐藏的效果。

<div ng-app="" ng-controller="personController"><button ng-click="toggle()">隐藏/显示</button><p ng-hide="myVar">
名: <input type="text" ng-model="person.firstName"><br>
姓: <input type="text" ng-model="person.lastName"><br>
<br>
姓名: {{person.firstName + " " + person.lastName}}
</p></div><script>
function personController($scope) {$scope.person = {firstName: "John",lastName: "Doe"};$scope.myVar = false;$scope.toggle = function() {$scope.myVar = !$scope.myVar;};
}
</script>

  ng-show使用方法也相同

<div ng-app="" ng-controller="personController"><button ng-click="toggle()">隐藏/显示</button><p ng-show="myVar">
名: <input type="text" ng-model="person.firstName"><br>
姓: <input type="text" ng-model="person.lastName"><br>
<br>
姓名: {{person.firstName + " " + person.lastName}}
</p></div><script>
function personController($scope) {$scope.person = {firstName: "John",lastName: "Doe"};$scope.myVar = true;$scope.toggle = function() {$scope.myVar = !$scope.myVar;};
}
</script>

 

  关于AngularJS的模块

  模块定义了用户的应用,所有的控制器属于一个模块。之前使用的ng-app就是模块的定义。

  例如下面的代码,定义了一个应用程序的模块myApp,并定义了一个控制器myCtrl:

<body><div ng-app="myApp" ng-controller="myCtrl">
{{ firstName + " " + lastName }}
</div><script src="//www.w3cschool.cc/try/angularjs/1.2.5/angular.min.js"></script><script src="myApp.js"></script>
<script src="myCtrl.js"></script></body>

  对于控制器,也可以通过模块来定义声明:

<head>
<script src="//www.w3cschool.cc/try/angularjs/1.2.5/angular.min.js"></script>
</head><body><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></body>

  不过要提前加载angularjs的脚本,这样再script中 angular.module才可以使用。或者在这句话的前面加载js。

 

  关于AngularJS表单

  表单是web中重要的组成部分,如下面样例所示,可以很方便的获取到form中的数据

<div ng-app="" ng-controller="formController"><form novalidate>First Name:<br><input type="text" ng-model="user.firstName"><br>Last Name:<br><input type="text" ng-model="user.lastName"><br><br><button ng-click="reset()">RESET</button></form><p>form = {{user}}</p><p>master = {{master}}</p>
</div><script>
function formController ($scope) {$scope.master = {firstName: "John", lastName: "Doe"};$scope.reset = function() {$scope.user = angular.copy($scope.master);};$scope.reset();
};
</script>

 

  关于验证

  AngularJS提供了很多验证机制,例如邮箱等。

<!DOCTYPE html>
<html> <body>
<h2>Validation Example</h2><form  ng-app=""  ng-controller="validateCtrl"
name="myForm" novalidate><p>Username:<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">Username is required.</span></span>
</p><p>Email:<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">Email is required.</span><span ng-show="myForm.email.$error.email">Invalid email address.</span></span>
</p><p><input type="submit"ng-disabled="myForm.user.$dirty && myForm.user.$invalid ||myForm.email.$dirty && myForm.email.$invalid">
</p></form><script src="//apps.bdimg.com/libs/angular.js/1.2.15/angular.min.js"></script>
<script>
function validateCtrl($scope) {$scope.user = 'John Doe';$scope.email = 'john.doe@gmail.com';
}
</script></body>
</html>

  可以通过.$dirty   .$invalid来验证。

 

  添加bootstrap样式

  可以首先加载bootstrap css文件

<link rel="stylesheet" href="//apps.bdimg.com/libs/bootstrap/3.2.0/css/bootstrap.min.css">

  样例代码参考:

<!DOCTYPE html>
<html ang-app="">
<head>
<link rel="stylesheet" href="http://apps.bdimg.com/libs/bootstrap/3.2.0/css/bootstrap.min.css">
</head><body ng-controller="userController">
<div class="container"><h3>Users</h3><table class="table table-striped"><thead><tr><th>Edit</th><th>First Name</th><th>Last Name</th></tr></thead><tbody><tr ng-repeat="user in users"><td><button class="btn" ng-click="editUser(user.id)"><span class="glyphicon glyphicon-pencil"></span>&nbsp;&nbsp;Edit</button></td><td>{{ user.fName }}</td><td>{{ user.lName }}</td></tr></tbody>
</table><hr>
<button class="btn btn-success" ng-click="editUser('new')"><span class="glyphicon glyphicon-user"></span> Create New User
</button>
<hr><h3 ng-show="edit">Create New User:</h3>
<h3 ng-hide="edit">Edit User:</h3><form class="form-horizontal">
<div class="form-group"><label class="col-sm-2 control-label">First Name:</label><div class="col-sm-10"><input type="text" ng-model="fName" ng-disabled="!edit" placeholder="First Name"></div>
</div> 
<div class="form-group"><label class="col-sm-2 control-label">Last Name:</label><div class="col-sm-10"><input type="text" ng-model="lName" ng-disabled="!edit" placeholder="Last Name"></div>
</div>
<div class="form-group"><label class="col-sm-2 control-label">Password:</label><div class="col-sm-10"><input type="password" ng-model="passw1" placeholder="Password"></div>
</div>
<div class="form-group"><label class="col-sm-2 control-label">Repeat:</label><div class="col-sm-10"><input type="password" ng-model="passw2" placeholder="Repeat Password"></div>
</div>
</form><hr>
<button class="btn btn-success" ng-disabled="error || incomplete"><span class="glyphicon glyphicon-save"></span> Save Changes
</button>
</div><script src = "http://apps.bdimg.com/libs/angular.js/1.2.15/angular.min.js"></script>
<script src = "myUsers.js"></script>
</body>
</html>
View Code

 

  关于include包含其他html

  可以通过ng-include来包含其他的web页面:

<body>
<div class="container"><div ng-include="'myUsers_List.htm'"></div><div ng-include="'myUsers_Form.htm'"></div>
</div>
</body>

 

  关于应用程序

  创建AngularJS应用程序

<div ng-app="myTodoApp" ng-controller="myTodoCtrl"><h2>我的笔记</h2><p><textarea ng-model="message" cols="40" rows="10"></textarea></p><p>
<button ng-click="save()">保存</button>
<button ng-click="clear()">清除</button>
</p><p>剩下的字符数:<span ng-bind="left()"></span></p></div><script src="myTodoApp.js"></script>
<script src="myTodoCtrl.js"></script>

 

  最后是Angular的指定 过滤器参考

  ng_app 定义应用程序

  ng_bind 绑定数据

  ng_click 定义元素单击行为

  ng_controller 定义控制器对象

  ng_disabled 定义html标签可用

  ng_init 初始化数据

  ng_model 绑定应用程序数据

  ng_repeat 实现循环

  ng_show 显示html标签

 

  currency 转换成货币

  filter 从数组中选择一个子集

  lowercase 格式化字符串为小写

  uppercase 格式化字符串为大写

  orderBy 排序

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/289793.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

08_drain a node on the swarm

在之前的小节&#xff0c;所有的节点的状态都是运行着的可用状态。swarm manager 可以分配任务给任意可用的节点。有时候&#xff0c;你可能需要对某台服务器进行维护&#xff0c;你需要配置某个节点为drain状态&#xff0c;即排干该节点上面的所有运行的容器。drain状态可以防…

特斯拉为何使用.NET 技术栈?

【精选转载】| 来源/知乎在知乎上有一个帖子非常热闹&#xff1a;“为何特使拉使用.net core技术栈 而不用 java&#xff1f;”1回答1&#xff1a;Kasim作者&#xff1a;Kasim链接&#xff1a;https://www.zhihu.com/question/496204534/answer/2269157872这题我熟啊&#xff0…

java之DocumentBuilderFactory解析xml

1、About documentBuilderFactory API description 1&#xff09;、 javax.xml.parsers 包DocumentBuilderFactory创建DOM模式的解析器对象, DocumentBuilderFactory是抽象工厂类&#xff0c;不能直接实例化&#xff0c;但是有newInstance方法 2&#xff09;、DocumentBuilderF…

java jdk实现快速排序_Java实现快速排序过程分析

快速排序过程没有既不浪费空间又可以快一点的排序算法呢&#xff1f;那就是“快速排序”&#xff01;光听这个名字是不是就觉得很高端呢。假设我们现在对“52 39 67 95 70 8 2552”这个8个数进行排序。首先在这个序列中随便找一个数作为基准数(不要被这个名词吓到了&#xff0c…

深入理解计算机系统读书笔记

由于这本书的前半部分习题大多是相关计算和简单汇编代码编写&#xff0c;所以当时都是在稿纸上练习的&#xff0c;不过现在那些稿纸似乎也不见了: ( 所以现在仅有后半部分的课后习题代码以及示例练习代码&#xff08;家里作业习题当时并没有做&#xff0c;准备阅读第二遍时再做…

Blazor University (6)组件 — 组件事件

原文链接&#xff1a;https://blazor-university.com/components/component-events/组件事件源代码[1]EventCallback<T> 类是一个特殊的 Blazor 类&#xff0c;可以作为参数公开&#xff0c;以便组件可以在发生感兴趣的事情时轻松通知使用者。一旦声明了 EventCallback&l…

JavaScript匿名函数以及在循环中的匿名函数

一 历史 JavaScript其实是一门奇异的语言&#xff0c;TA的一大特性是没有块级作用域 for(var i0;i<10;i){} console.log(i)大家猜测下值是多少&#xff1f;答案是 10&#xff0c; 虽然我们在一个块内申明了变量&#xff0c;但i却是在全范围内起作用的&#xff0c;所以就引入…

Linux内核笔记--内存管理之用户态进程内存分配

内核版本&#xff1a;linux-2.6.11 Linux在加载一个可执行程序的时候做了种种复杂的工作&#xff0c;内存分配是其中非常重要的一环&#xff0c;作为一个linux程序员必然会想要知道这个过程到底是怎么样的&#xff0c;内核源码会告诉你这一切。 线性区 一个可执行程序&#xff…

Android之javax.net.ssl.SSLPeerUnverifiedException: Hostname ip not verified:解决办法

1、问题 用HttpURLConnection去请求的时候抛了下面的异常 HttpRequest$HttpRequestException: javax.net.ssl.SSLPeerUnverifiedException: Hostname ip not verified: 2、分析和解决 从异常来看是因为SSL协议握手的过程中,这个服务度地址的证书没有被证实,被信任。 clien…

php 字符串进行计算_怎么在php中利用eval对字符串格式进行计算

怎么在php中利用eval对字符串格式进行计算发布时间&#xff1a;2020-12-16 16:42:57来源&#xff1a;亿速云阅读&#xff1a;101作者&#xff1a;Leah本篇文章给大家分享的是有关怎么在php中利用eval对字符串格式进行计算&#xff0c;小编觉得挺实用的&#xff0c;因此分享给大…

Xamarin效果第十四篇之玩耍GIS

最近再次拾起Xamarin然后也实现了祖传PLC控制和弹窗配置;这不又一次勾起来我想基于他玩玩原来一直玩耍的GIS,毕竟咱前面一直玩耍二维和三维的GIS相关的知识点;有兴趣的小伙伴可以翻翻我的历史文章;趁着激情满满;来看看最终咱实现的加载高德平面地图效果(有水印):再者就是满足群…

Android下载apk异常java.net.SocketTimeoutException: timeout解决办法

1、问题 实现下载apk的时候&#xff0c;抛出下面异常 java.net.SocketTimeoutException: timeout 2、分析 很明显是socket超时了&#xff0c;由于我的wifi网络比较慢&#xff0c;设置的超时时间可能短了。 在写入由 GetRequestStream 方法返回的流时&#xff0c;或在读取由…

SQL SERVER两种分页的存储过程介绍

由于现在很多的企业招聘的笔试都会让来招聘的写一个分页的存储过程,有的企业甚至要求应聘者用两种方式实现分页,如果没有在实际项目中使用过分页,那么很多的应聘者都会出现一定的问题,下面介绍两种分页的方法。 一、 以学生表为例,在数据库中有一个Student表,字段有 …

Java Socke 探究

Java中的Socket可以分为普通Socket和NioSocket两种。 普通Socket的用法 Java中的网络通信是通过Socket实现的&#xff0c;Socket分为ServerSocket和Socket两大类&#xff0c;ServerSocket用于服务端&#xff0c;可以通过accept方法监听请求&#xff0c;监听到请求后返回Socket&…

codeforces 600D Area of Two Circles' Intersection

分相离&#xff0c;内含&#xff0c;想交三种情况讨论一下。 主要是精度和数据范围的问题&#xff0c;首先数据用long double&#xff0c;能用整型判断就不要用浮点型。 题目中所给的坐标&#xff0c;半径是整型的&#xff0c;出现卡浮点判断的情况还是比较少的。 最后算三角型…

PHP进程退出信号_一文吃透 PHP 进程信号处理

背景前两周老大给安排了一个任务&#xff0c;写一个监听信号的包。因为我司的项目是运行在容器里边的&#xff0c;每次上线&#xff0c;需要重新打包镜像&#xff0c;然后启动。在重新打包之前&#xff0c;Dokcer会先给容器发送一个信号&#xff0c;然后等待一段超时时间(默认1…

GitHub Copilot 现已登陆 Visual Studio!

激动人心的好消息来了&#xff0c;GitHub 在3月29日发布博客&#xff0c;宣布 Github Copilot 现在可以在 Visual Studio 中使用。我们知道 Visual Studio 的 IntelliCode 本身已经很智能了, 现在又迎来了 Copilot, 编程体验将进入新的篇章。如何安装? 首先&#xff0c;您…

经典实用SQL语句大全汇总

目 录 1.随机取3条记录 2.随机选记录 3.删除重复记录 4.创建数据库 5.列出表里的所有的列名 6.选择从10到15的记录 7.压缩数据库

java之写接口回调编程经验改进

1、问题 在一个类里面数据的变化需要在另外一个类里面动态得到&#xff0c;比如在我的异步任务里面下载的数据&#xff0c;需要在UI界面的ProgressDialog里面动态显示&#xff0c;我们需要在异步任务里面写个接口&#xff0c;然后接口里面有一些函数&#xff0c;至于在Progres…

Mac Ubuntu ----端口被占用

Mac下使用lsof&#xff08;list open files&#xff09;来查看端口占用情况&#xff0c;lsof 是一个列出当前系统打开文件的工具。 使用 lsof 会列举所有占用的端口列表&#xff1a; 1$ lsof使用less可以用于分页展示&#xff0c;如&#xff1a; 1$ lsof | less也可以使用 -i 查…