AngularJS学习笔记(一)

一.基本指令

1、ng-app=" " 指令初始化一个 AngularJS 应用程序,定义angularJS的使用范围;

tips:一个页面里创建多个 ng-app 手动加载即可:

var app1 = angular.module("app1", []);
var app2 = angular.module("app2", []);
angular.bootstrap(document.getElementById("app2"), ['app2']);

2、ng-init="变量=值;变量='值'"  初始化变量的值,有多个变量时,中间用分号隔开;

3、ng-model="变量"指令把元素值(比如输入域的值)绑定到应用程序

验证用户输入:

<form ng-app="" name="myForm">

Email: <input type="email" name="myAddress" ng-model="text">

<span ng-show="myForm.myAddress.$error.email">不是一个合法的邮箱地址</span>

</form>

ng-model 指令根据表单域的状态添加/移除以下类:

  • ng-touched    //点击
  • ng-untouched
  • ng-valid    //验证通过
  • ng-invalid
  • ng-dirty    //修改
  • ng-pristine    

4、ng-bind="变量"  绑定变量名,获取该变量的数据。这里的变量就是第3条的变量名。但是一般都用双重花括号来获取变量的值,比如:{{变量}}。

5ng-repeat 指令会重复一个 HTML 元素:

<div ng-app="" ng-init="names=[ {name:'Jani',country:'Norway'}, {name:'Hege',country:'Sweden'}, {name:'Kai',country:'Denmark'}]">

<p>循环对象:</p>

<ul>

<li ng-repeat="x in names">

{{ x.name + ', ' + x.country }}

</li>

</ul>

</div>

6.自定义指令:

<body ng-app="myApp">

<r-directive></r-directive> //作为元素名使用,还可以通过类名,属性,注释

<script>

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

app.directive("rDirective", function() {

return { template : "<h1>自定义指令!</h1>" };

});

</script>

</body>

 限制使用:

restrict 值可以是以下几种:

  • E 作为元素名使用
  • A 作为属性使用
  • C 作为类名使用
  • M 作为注释使用

restrict 默认值为 EA, 即可以通过元素名和属性名来调用指令。


二.AngularJS支持的数据

数字,字符串,数组,对象 

与 JavaScript 表达式不同,AngularJS 表达式不支持条件判断,循环及异常。

AngularJS 表达式写在双大括号内:{{ expression }}

AngularJS 表达式把数据绑定到 HTML,这与 ng-bind 指令有异曲同工之妙。

tips:

HTML5 允许扩展的(自制的)属性,以 data- 开头。

AngularJS 属性以 ng- 开头,但是您可以使用 data-ng- 来让网页对 HTML5 有效。

使用 ng-init 不是很常见。您将在控制器一章中学习到一个更好的初始化数据的方式。

 

三.AngularJS scope(作用域)

Scope(作用域) 是应用在 HTML (视图) 和 JavaScript (控制器)之间的纽带。

Scope 是一个对象,有可用的方法和属性。

Scope 可应用在视图和控制器上。

<div ng-app="myApp" ng-controller="myCtrl">

<h1>姓氏为 {{lastname}} 家族成员:</h1>

<ul>

<li ng-repeat="x in names">{{x}} {{lastname}}</li>

</ul>

</div>

<script>

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

app.controller('myCtrl', function($scope, $rootScope) {

$scope.names = ["Emil", "Tobias", "Linus"];

$rootScope.lastname = "Refsnes"; });

</script>

<div ng-app="myApp" ng-controller="myCtrl">

<input ng-model="name">

<h1>{{greeting}}</h1>

<button ng-click='sayHello()'>点我</button>

</div>

<script>

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

app.controller('myCtrl', function($scope) {

$scope.name = "Runoob";

$scope.sayHello = function() {

$scope.greeting = 'Hello ' + $scope.name + '!';

};

});

</script>

 

四.AngularJS 控制器

<div ng-app="myApp" ng-controller="personCtrl">

名: <input type="text" ng-model="firstName"><br>

姓: <input type="text" ng-model="lastName"><br>

姓名: {{fullName()}}

</div>

<script>

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

app.controller('personCtrl', function($scope) {

$scope.firstName = "John";

$scope.lastName = "Doe";

$scope.fullName = function() {

return $scope.firstName + " " + $scope.lastName;

}

});

</script>

 

五.AngularJS 过滤器:过滤器可以通过一个管道字符(|)和一个过滤器添加到表达式中。

currency:格式化数字为货币格式。
filter:从数组项中选择一个子集。
lowercase:格式化字符串为小写。
uppercase:格式化字符串为大写。
orderBy:根据某个表达式排列数组。
<div ng-app="myApp" ng-controller="namesCtrl">

<p>输入过滤:</p>

<p><input type="text" ng-model="test"></p>

<ul>

<li ng-repeat="x in names | filter:test | orderBy:'country'"> //按城市首字母排列同时支持输入过滤

{{ (x.name | uppercase) + ', ' + x.country }}

</li>

</ul>

</div>

<script>

angular.module('myApp', []).controller('namesCtrl', function($scope) {

$scope.names = [ {name:'Jani',country:'Norway'},

{name:'Hege',country:'Sweden'},

{name:'Kai',country:'Denmark'}

];

});

</script>

.AngularJS服务

在 AngularJS 中,服务是一个函数或对象,可在你的 AngularJS 应用中使用

$location.absUrl():返回当前页面的 URL 地址

$http: 服务向服务器发送请求,应用响应服务器传送过来的数据

$http.get('/someUrl', config).then(successCallback, errorCallback);
$http.post('/someUrl', data, config).then(successCallback, errorCallback);
// 简单的 GET 请求,可以改为 POST
$http({method: 'GET',url: '/someUrl'
}).then(function successCallback(response) {// 请求成功执行代码}, function errorCallback(response) {// 请求失败执行代码
}); 

$timeout(function(){},2000) 服务对应了 JS window.setTimeout 函数

$interval(function(){},1000)服务对应了 JS window.setInterval 函数。

 

创建自定义服务: 

<div ng-app="myApp" ng-controller="myCtrl">

<p>255 的16进制是:</p>

<h1>{{hex}}</h1>

</div>

<p>自定义服务,用于转换16进制数:</p> 

<script>

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

app.service('hexafy', function() {

this.myFunc = function (x) {

return x.toString(16);

} });

app.controller('myCtrl', function($scope, hexafy) {

$scope.hex = hexafy.myFunc(255);

});

</script> 

 

转载于:https://www.cnblogs.com/NatChen/p/9076144.html

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

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

相关文章

oc 画一个圆弧_UG建模一个蜗杆的方法,纯手工建模无插件

上次我们画了一个蜗杆&#xff0c;今天就来建模一个涡轮模型&#xff0c;也是非常简单。这次还是无尺寸的随意建模&#xff0c;做出这么一个涡轮&#xff0c;来看看建模方法吧&#xff01;1 首先在XY平面上绘制一个直径100的圆&#xff0c;上下拉伸10mm2 对圆柱上下面倒斜角3mm…

计算机基本网络测试命令实验报告,网络连通性测试与网络命令验证实验报告

网络连通性测试与网络命令验证实验报告西工大计算机网络原理实验报告网络原理实验报告实验名称&#xff1a; 网络连通性测试与网络命令验证 日期&#xff1a; 2015.11&#xff0e;09 班级&#xff1a;学号&#xff1a; 姓名&#xff1a;【一】 预习内容5个常用网络命令&#xf…

Leetcode--11. 盛水最多的容器

给定 n 个非负整数 a1&#xff0c;a2&#xff0c;...&#xff0c;an&#xff0c;每个数代表坐标中的一个点 (i, ai) 。在坐标内画 n 条垂直线&#xff0c;垂直线 i 的两个端点分别为 (i, ai) 和 (i, 0)。找出其中的两条线&#xff0c;使得它们与 x 轴共同构成的容器可以容纳最多…

《城市大脑全球标准研究报告》发布会将于12月23号在北京举办

城市大脑全球标准研究组《城市大脑全球标准研究报告》发布会将于2020年12月23日下午在北京海淀区城市大脑展览厅举办&#xff0c;发布会除了报告发布&#xff0c;智能产业专家演讲&#xff0c;也将参观海淀城市大脑的发展情况。欢迎新闻媒体、科研机构、科技企业、政府部门的记…

竞态条件与临界区

在同一程序中运行多个线程本身不会导致问题&#xff0c;问题在于多个线程访问了相同的资源。如&#xff0c;同一内存区&#xff08;变量&#xff0c;数组&#xff0c;或对象&#xff09;、系统&#xff08;数据库&#xff0c;web services等&#xff09;或文件。实际上&#xf…

java 实现打印条形码_条码打印软件中如何设置条形码下面的字符间距?

条形码有两部分组成&#xff0c;上面是黑白条图案&#xff0c;用于扫描设备的识别&#xff0c;下面是条形码数据&#xff0c;方便在没有扫描设备的情况下可以手动去搜索相关的信息。一般用条码打印软件制作条形码&#xff0c;下面的条形码数据间距是自动生成的&#xff0c;而在…

计算机科学分为几个部分,计算机由几部分组成各部分的功能是什么

推荐回答一、数值计算计算机广泛地应用于科学和工程技术方面的计算&#xff0c;这是计算机应用的一个基本方面&#xff0c;也是我们比较熟悉的。如&#xff1a;人造卫星轨迹计算&#xff0c;导弹发射的各项参数的计算&#xff0c;房屋抗震强度的计算等。二、数据处理用计算机对…

用跑得最慢的电脑程序,理解最高深的哥德巴赫猜想

五条规则的图灵机可视化。每列像素代表一步计算&#xff0c;步骤从左到右。黑色代表1。最右边表示图灵机的停机。&#xff08;图片来源&#xff1a;Peter Krumins/Quanta Magazine&#xff09;文章来源&#xff1a;环球科学“忙碌的河狸”这个问题的目的是为了找到运行时间最长…

Leetcode--42.接雨水

给定 n 个非负整数表示每个宽度为 1 的柱子的高度图&#xff0c;计算按此排列的柱子&#xff0c;下雨之后能接多少雨水。 上面是由数组 [0,1,0,2,1,0,1,3,2,1,2,1] 表示的高度图&#xff0c;在这种情况下&#xff0c;可以接 6 个单位的雨水&#xff08;蓝色部分表示雨水&#…

(4)Python3笔记 之 流程控制

一、条件控制 # 语法规则 if 变量(或表达式):语句块1 elif 变量(或表达式):语句块2 else:语句块3#示例 score 83 if score > 90:print(优秀) elif score > 60 and score < 90:print(及格) else:print(不及格) 二、循环 1&#xff09;. while循环 i 0 sum 0 while i…

云专网和云专线的区别_传统IDC行业与云计算的区别?

1.传统IDC行业和云计算在服务类型上的区别&#xff1a;传统IDC行业主要是有两种模式&#xff1a;租用和托管租用是自己没有服务器&#xff0c;机房提供服务器、带宽、IP地址、机位、服务器维护等。这种模式是租用。托管是自己购买配置服务器&#xff0c;通过快递、物流等方式把…

计算机插件技术应用原理,计算机软件技术中插件技术的运用

计算机软件技术中插件技术的运用在我国科技水平的不断提升下,计算机软件方面的功能也在持续更新。其中插件技术作为计算机软件中实用性比较强的一项功能,一直被研究分析。下面是小编搜集整理的相关内容的论文&#xff0c;欢迎大家阅读参考。摘要&#xff1a;随着经济和科学技术…

未来30年,这20项技术将颠覆人类生活

来源&#xff1a;嵌入式资讯精选美国公布了一份长达35页的《新兴科技趋势报告》。该报告是在美国过去五年内由政府机构、咨询机构、智囊团、科研机构等发表的32份科技趋势相关研究调查报告的基础上提炼形成的。通过对近700项科技趋势的综合比对分析&#xff0c;最终明确了20项最…

攻克数据库核心技术壁垒,实现百万级QPS的高吞吐

CynosDB是腾讯云自研的新一代高性能高可用的企业级分布式云数据库。融合了传统数据库、云计算与新硬件的优势&#xff0c;100%兼容开源数据库&#xff0c;百万级QPS的高吞吐&#xff0c;不限存储&#xff0c;价格仅为商用数据库的1/10。 CynosDB设计出发点: 随着云计算2.0时代的…

Leetcode--55. 跳跃游戏

给定一个非负整数数组&#xff0c;你最初位于数组的第一个位置。 数组中的每个元素代表你在该位置可以跳跃的最大长度。 判断你是否能够到达最后一个位置。 示例 1: 输入: [2,3,1,1,4] 输出: true 解释: 从位置 0 到 1 跳 1 步, 然后跳 3 步到达最后一个位置。 示例 2: 输…

ccxprocess启动项可以禁用么_Mac怎么禁用Adobe无用自启项?

最近有使用Mac的用户询问小编Mac如何禁用Adobe无用自启项&#xff1f;每次开机Adobe都会无用自启&#xff0c;那么Mac如何禁用Adobe无用自启项&#xff0c;跟着小编一起来看看Mac禁用Adobe无用自启项教程。Mac禁用Adobe无用自启项教程&#xff1a;一&#xff1a;通过以下路径找…

某中学要对学校运动会进行计算机管理,2020年新编高职入学考试适应性试卷信息技术试卷定稿名师精品资料....

2015年福建省高等职业教育入学考试(面向普通高中考生)信息技术适应性试卷考试时间&#xff1a;120分钟&#xff0c;满分&#xff1a;150分一、选择题&#xff1a;(60分)1. 下列关于信息的说法&#xff0c;正确的是A.信息的形态不能转化B.信息有多种传播形式C. 载体本身就是信息…

CLion之C++框架篇-安装工具,基础框架的搭建(一)

CLion之C框架篇-安装工具&#xff0c;基础框架的搭建&#xff08;一&#xff09; 背景日常学习C&#xff0c;也就是看看书、在vim里写写代码。在日常项目开发中&#xff0c;也是边看书&#xff08;一是系统性理解、二是找找有什么更好的代码编写方式&#xff09;边写代码&#…

学术评论:“类脑计算完备性(Neuromorphic completeness)”概念定义中的问题

作者&#xff1a;程京德文章出处&#xff1a;程京德科学网博客链接地址&#xff1a;http://blog.sciencenet.cn/blog-2371919-1262267.html 2020年10月&#xff0c;“Nature”杂志发表了清华团队题为“A system hierarchy for brain-inspired computing”的论文 [1]&#xff0c…

Leetcode--12. 整数转罗马数字

罗马数字包含以下七种字符&#xff1a; I&#xff0c; V&#xff0c; X&#xff0c; L&#xff0c;C&#xff0c;D 和 M。 字符 数值 I 1 V 5 X 10 L 50 C 100 D 500 M 1000 例…