Loading [MathJax]/jax/input/TeX/config.js
前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >专栏 >【AngularJS】—— 2 初识AngularJs(续)

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

作者头像
用户1154259
发布于 2018-01-17 09:33:34
发布于 2018-01-17 09:33:34
2.4K00
代码可运行
举报
运行总次数:0
代码可运行

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

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

  1 事件

  2 模块

  3 表单

  4 数据验证

  5 bootstrap CSS风格

  6 include包含其他页面

  7 应用程序

  8 参考手册

  首先看一下html的事件

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

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

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
<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都会改变为相反的值,达到现实隐藏的效果。

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
<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使用方法也相同

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
<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:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
<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>

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

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
<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中的数据

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
<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提供了很多验证机制,例如邮箱等。

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
<!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文件

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
<link rel="stylesheet" href="//apps.bdimg.com/libs/bootstrap/3.2.0/css/bootstrap.min.css">

  样例代码参考:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
<!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>

  关于include包含其他html

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

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
<body>
<div class="container">
  <div ng-include="'myUsers_List.htm'"></div>
  <div ng-include="'myUsers_Form.htm'"></div>
</div>
</body>

  关于应用程序

  创建AngularJS应用程序

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
<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 排序

本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
原始发表:2015-02-09 ,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
暂无评论
推荐阅读
编辑精选文章
换一批
AngularJS系列(八)——事件
ng-click :点击 ng-click 指令定义了 AngularJS 点击事件。 <div ng-app="myApp"ng-controller="myCtrl"> <buttonng-click="count=count+1">点我!</button> <p>{{count}}</p> </div> <script> var app = angular.module('myApp', []); app.controller('myCtrl', function
逝兮诚
2019/10/30
5270
Angularjs基础(七)
AngularJS表单     AngularJS表单时输入控件的集合 HTML控件     一下HTML input 元素被称为HTML 控件:         input 元素         select元素         button元素         textarea元素 HTML 表单     AngularjS表单上实例       <div ng-app="myApp" ng-controller="formCtrl">          <from nova
用户1197315
2018/01/19
2.2K0
【AngularJS】—— 5 表单
这部分,我们写一个表单程序,使用angularjs的检测并完成表单属性的获取与拷贝。   在AngularJS中,也支持html5中多种控件的自动检测,如:text、number、url、email、radio、checkbox等等。   可以通过anuglar.copy()自动拷贝form表单的数据。   代码参考如下: <!doctype html> <html ng-app> <head> <meta http-equiv="Content-Type" content=
用户1154259
2018/01/17
8740
【AngularJS】—— 5 表单
Angularjs基础(三)
    AngularJS ng-model 指令     ng-model 指令用于绑定应用程序数据到HTML 控制器(input,select,textarea)的值 ng-model指令     ng-model指令可以将输入域的值与AngularJS 创建的变量绑定。       实例:         <div ng-app="myApp" ng-controller="myCtrl">             名字:<input ng-model="name">  
用户1197315
2018/01/19
3.2K0
AngularJS 事件
ng-hide 指令设置 <p>元素及两个输入域是否可见, 根据 myVar 的值 (true 或 false) 来设置是否可见。
陈不成i
2021/07/23
1.7K0
AngularJS系列(十)——表单的重置和验证
版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
逝兮诚
2019/10/30
1.6K0
AngularJS Bootstrap
AngularJS 的首选样式表是 Twitter Bootstrap, Twitter Bootstrap 是目前最受欢迎的前端框架。
陈不成i
2021/07/26
4.8K0
Angularjs基础(六)
AngularJS HTML DOM     AngularJS为HTML DOM 元素的属性提供了绑定应用数据的指令。 ng-disabled指令     ng-disabled指令直接绑定应用数据到HTML的disabled属性。       实例:       <div ng-app="" ng-init="mySwitch=true">         <p>           <button ng-disableled="mySwitch">点我!</button
用户1197315
2018/01/19
3.1K0
【一起来烧脑】一步学会AngularJS系统
AngularJS是一个JavaScript框架 一个用JavaScript编写的库
达达前端
2019/07/18
5.7K0
【一起来烧脑】一步学会AngularJS系统
Angularjs基础(八)
AngularJS Bootstrap     AngularJS 的首选样式表是 Twitter Bootstrap ,Twitter Bootstrap 是目前最受欢迎的前端框架 Bootstrap     你可以在你的 AngularJS 应用中加入 Twitter Bootstrap,你可以在你的 <head>元素中添加如下代码:     <link rel="stylesheet" href="//maxcdn.bootstrapcdn.com/bootstrap/3.3.4/css/boo
用户1197315
2018/01/19
3.1K0
AngularJS 表单
checkbox 的值为 true 或 false,可以使用 ng-model 指令绑定,它的值可以用于应用中:
陈不成i
2021/07/23
3.2K0
初识angularjs
之前有学习过一段时间的backbone,近期在同事的建议了稍稍的来了解了一下angularjs,和backbone一样,同是比较著名和流行的前端MVC框架。另外值得一提的是angularjs是由google组织开发的。
the5fire
2019/02/28
6620
【AngularJS】 # AngularJS入门
ng-app 指令定义一个 AngularJS 应用程序。 若不声明,将直接显示表达式。
全栈程序员站长
2022/09/15
23.8K0
【AngularJS】 # AngularJS入门
AngularJS系列(二)——作用域和控制器
版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
逝兮诚
2019/10/30
4820
3-进军 angular1.x 模型和作用域 scope
View(视图), 即 HTML。 Model(模型), 当前视图中可用的数据。 Controller(控制器), 即 JavaScript 函数,可以添加或修改属性。 scope 是模型。
西南_张家辉
2021/02/02
1.4K0
7-进军 angular1.x 表单和事件、模块
通常 AngularJS 应用程序将模块和控制器包含在 JavaScript 文件中。
西南_张家辉
2021/02/02
2.5K0
angularJS学习之路(三)---控制器
控制器是 JavaScript 对象,由标准的 JavaScript 对象的构造函数 创建。
wust小吴
2019/07/08
6720
AngularJS快速入门
记得第一次听说AngularJS这项很赞的Web的前端技术,那时还是2014年,年中时我们我的一个大牛兄弟当时去面试时,被问到了是否熟悉该技术,当时他了解和使用的技术比较多。我们询问他面试情况时,他给俺这个菜菜科普了该技术,印象比较深的是该技术支持前端MVC架构,可以完成大部分原有的后台工作,当时就觉得很神奇,但由于自身技术基础比较薄弱,没有太多时间和积累去学习新的技术,因而搁置了。在2016新年初始,正好有一些富余时间,正好学习下这个被称为就是“”两个大括号“”的前端框架(当前已经非常成熟,国内大部分公司
用户1216676
2018/01/24
2.6K0
AngularJS快速入门
Angularjs基础(九)
AngularJS 应用 应用程序讲解     实例:         <html ng-app="myNoteApp">           <head>             <meat charset="utf-8">             <script src="http://apps.bdimg.com/libs/angular.js/1.4.6angular.min.js"></script>           </head>           <body>
用户1197315
2018/01/22
1.3K0
AngularJS基础入门初探
  (2)由Misko Hevery 等人创建,2009年被Google所收购,用于其多款产品
Edison Zhou
2018/08/20
1.9K0
AngularJS基础入门初探
相关推荐
AngularJS系列(八)——事件
更多 >
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档
本文部分代码块支持一键运行,欢迎体验
本文部分代码块支持一键运行,欢迎体验