angular初体验(简单易学,适合新手,很新很新的手哈哈哈)

几个月前第一次听说了angularjs这个框架,那时并没有什么好感。因为我偏执的认为angular这个名字很晦涩,不易记忆和理

解。直到最近项目中要用到它,我又不得不开始学习它,并在一天天的使用中爱上了它 ... ... (今天貌似情人节啊,谈爱字我才想起

来,大家七夕快乐哈哈)

angularjs 最酷炫的五大特性:双向绑定,依赖注入,mvc,模板,Directives。

学习angular,我觉得应该从它的指令开始学起。

AngularJS指令

AngularJS
通过被称为 指令 的新属性来扩展 HTML。

ng-app 指令:模块名。定义了
AngularJS 应用程序的 根元素,用于初始化一个
AngularJS 应用程序。

ng-init 指令:在html元素中直接为
AngularJS 应用程序定义初始值,初始化应用程序数据。但初始化一般在控制器或模块中进行。

ng-model 指令:绑定html元素到应用程序数据中的模板中。

ng-model 指令也可以:

  • 为应用程序数据提供类型验证(number、email、required)。
  • 为应用程序数据提供状态(invalid、dirty、touched、error)。
  • 为 HTML 元素提供 CSS 类。
  • 绑定 HTML 元素到 HTML 表单。

ng-repeat 指令:对于集合中(数组中)的每个项会 克隆一次
HTML 元素,会重复一个 HTML 元素多次。(一般用于循环输出)

ng-bind 指令:把数据绑定到对应的
HTML元素上。(也可以直接将要输出的model放在html的双大括号内直接输出)

这些指令的具体应用看后面的实例,这里只是罗列出来让你心里好有个底。

ng-if :在html中通过判断该html元素绑定的model的值的真假来决定该html元素是否显示。

ng-show / ng-hide:在html中通过判断该html元素中ng-show所绑定的model的值的真假,来控制该html元素是否显示。

ng-if和ng-show、ng-hide他们从表面上看非常像,但是ng-if只是用来做判断,值为true时只会显示里面的内容。而ng-if所在

的这个dom节点实际并不会被创建。(网上据说是这样的,时间匆忙还未来得及亲测。)

AngularJS表达式

AngularJS 使用 表达式 把数据绑定到
HTML。

AngularJS 表达式 与 JavaScript
表达式的异同:

类似于 JavaScript 表达式,AngularJS 表达式可以包含字母,操作符,变量。

与 JavaScript 表达式不同,AngularJS 表达式可以写在 HTML 中。

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

与 JavaScript 表达式不同,AngularJS 表达式支持过滤器。

AngularJS 表达式写在双大括号内:{{ expression }},就可以直接输出expression的值了。

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

AngularJS 将在表达式书写的位置"输出"数据。

AngularJS 表达式 很像 JavaScript 表达式:它们可以包含文字、运算符和变量。

除此之外,angularjs的数字、字符串、对象、数组都跟js一样。

看一个ng-if 的实例:

<label>Click me: <input type="checkbox" ng-model="checked" ng-init="checked=true" /></label><br/>
Show when checked:
<span ng-if="checked" class="animate-if">
  This is removed when the checkbox is unchecked.
</span>
选中单选按钮,则输出为:
Click me: Show when checked: This is removed when the checkbox is unchecked.

AngularJS控制器

AngularJS 控制器 控制 AngularJS 应用程序的数据,它是常规的 JavaScript 对象。

ng-controller 指令:定义了应用程序所在的控制控制器。

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

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

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

<br>

姓名: {{firstName + " " + lastName}}

</div>

<script>

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

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

$scope.firstName = "John";

$scope.lastName = "Doe";

});

</script>

定义了ng-app的地方,表明是angular所控制的范围。应用程序在
<div> 内运行。定义了ng-controller="myCtrl" 的div,

表明这个div的控制器是myCtrl。然后JavaScript代码的myCtrl是这个控制器的定义。AngularJS
使用$scope 对象来调用控制

器。$scope
是一个应用象(属于应用变量和函数)。控制器的 $scope (相当于作用域、控制范围)用来保存AngularJS
Model(模

型)的对象。这段代码中控制器在作用域中创建了两个属性 firstName 和 lastName)。ng-model 指令绑定输入的值到控制器的属

性(firstName
和 lastName)。

AngularJS过滤器

过滤器可以使用一个管道字符(|)添加到表达式和指令中,用于筛选、过滤、转换数据。

过滤器 描述
currency 格式化数字为货币格式。
filter 从数组项中选择一个子集。
lowercase 格式化字符串为小写。
orderBy 根据某个表达式排列数组。
uppercase 格式化字符串为大写。

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

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

另外要过滤的值也可以是你绑定的某个model的值,除此之外你还可以自定义过滤器。

AngularJS服务

$http 是
AngularJS 中的一个核心服务,用于读取远程服务器的数据。(一般用来进行前后端数据交互)。

例如读取 一个外部JSON 文件(以下是存储在web服务器上的
JSON 文件):

http://www.runoob.com/try/angularjs/data/Customers_JSON.php

[

{

"Name" : "Alfreds Futterkiste",

"City" : "Berlin",

"Country" : "Germany"

},

{

"Name" : "Berglunds snabbk?p",

"City" : "Lule?",

"Country" : "Sweden"

},

{

"Name" : "Centro comercial Moctezuma",

"City" : "México D.F.",

"Country" : "Mexico"

},

{

"Name" : "Ernst Handel",

"City" : "Graz",

"Country" : "Austria"

},

{

"Name" : "FISSA Fabrica Inter. Salchichas S.A.",

"City" : "Madrid",

"Country" : "Spain"

},

{

"Name" : "Galería del gastrónomo",

"City" : "Barcelona",

"Country" : "Spain"

},

{

"Name" : "Island Trading",

"City" : "Cowes",

"Country" : "UK"

},

{

"Name" : "K?niglich Essen",

"City" : "Brandenburg",

"Country" : "Germany"

},

{

"Name" : "Laughing Bacchus Wine Cellars",

"City" : "Vancouver",

"Country" : "Canada"

},

{

"Name" : "Magazzini Alimentari Riuniti",

"City" : "Bergamo",

"Country" : "Italy"

},

{

"Name" : "North/South",

"City" : "London",

"Country" : "UK"

},

{

"Name" : "Paris spécialités",

"City" : "Paris",

"Country" : "France"

},

{

"Name" : "Rattlesnake Canyon Grocery",

"City" : "Albuquerque",

"Country" : "USA"

},

{

"Name" : "Simons bistro",

"City" : "K?benhavn",

"Country" : "Denmark"

},

{

"Name" : "The Big Cheese",

"City" : "Portland",

"Country" : "USA"

},

{

"Name" : "Vaffeljernet",

"City" : "?rhus",

"Country" : "Denmark"

},

{

"Name" : "Wolski Zajazd",

"City" : "Warszawa",

"Country" : "Poland"

}

]


你可以这么获取刚才那个json文件:($http.get(url)
是用于读取服务器数据的函数)

AngularJS 实例

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

<ul>

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

{{ x.Name + ‘, ‘ + x.Country }}

</li>

</ul>

</div>

<script>

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

app.controller(‘customersCtrl‘, function($scope, $http) {

$http.get("http://www.runoob.com/try/angularjs/data/Customers_JSON.php")

.success(function(response) {$scope.names = response.records;});

});

</script>

这是我这几天的使用心得,我还会接着学习angular,未完待续。。。

版权声明:本文为博主原创文章,未经博主允许不得转载。

时间: 2024-07-31 03:36:17

angular初体验(简单易学,适合新手,很新很新的手哈哈哈)的相关文章

新的框架,新的感觉ASP.NET MVC 分享一个简单快速适合新手的框架

在ASP.NET世界中摸爬滚打好几年,用过了各种框架,在最初的ASP.NET web from 到现在的MVC 在起初的经典三层,到现在的MVC  IOC  注入 . 突然发现,有些时候真不是跟风用一些框架就好,   那到底用什么框架呢,我个人认为,只要自己用起来哦哦顺手就是最好的框架. 下面就分享下我自己写的框架, 实际上也是经典的三层模式+工厂模式 后期会增加支持Mssql,mysql ORM我用的是EF+Dapper    EF更多的做修改,删除,添加操作    Dapper更多做的是查询

Axure初体验:简单交互、通过按钮切换图片

从元件库中选择"动态面板”,作为切换图片的面板 拖出一个动态面板 双击动态面板弹出管理窗口,点击添加按钮添加若干状态(StateXXX) 双击对应State可跳转到指定页面,随便加张图片 拖个按钮选中,然后点击右上面板中的“添加用例”(默认是设置鼠标点击时的) 点击“设置面板状态”.选择要设置的动态面板的名字.选择要跳转到的状态 按F5可打开浏览器预览

OSPF 多重分发简单配置 适合新手小白 (可跟做)

实验拓扑图 实验工具 GNS3 实验步骤 1.按照拓扑图构建好相应的虚拟设备 2.进入R1,配置接口IP,配置默认路由 3.进入R2,配置接口IP,配置静态路由 4.开启OSPF协议,设置router ID,注入直连网段和静态路由 5.进入R3,配置接口IP,配置默认路由 6.开启OSPF协议,设置router ID,注入默认路由 7.进入R4,配置接口IP,开启OSPF和RIP协议,并在OSPF中注入RIP,在RIP中注入OSPF 8.进入R5,配置接口IP,开启RIP协议 9.进入R6,配置

LINQ to Object初体验(使用对象取代二维数组作数据筛选)

VS2008里面有个神奇的东西,称之为LINQ,可以透过相同的语法方式来处理各式各样的数据(SQL,XML,Object,...),小喵此次初体验感受一下这个东西,真的很好用,初体验来做个简单的测试,请看小喵娓娓道来 VS2008里面有个神奇的东西,称之为LINQ,可以透过相同的语法方式来处理各式各样的数据(SQL,XML,Object,...),小喵此次初体验感受一下这个东西,真的很好用,初体验来做个简单的测试,请看小喵娓娓道来 先来看一张LINQ的架构图(数据来源:曹祖圣老师在TechEd2

人工智能初体验(二):开发简单的图灵智能聊天工具

前言:这里为了有更好的个性化设置,因此我选择了图灵机器人(http://www.tuling123.com/)的接口,使用方法跟上一篇中使用百度的接口是差不多的. 注:文末有打包好的小软件和完整源代码的下载链接 一 API Key申请 申请地址:http://www.tuling123.com/ 中间的注册登录过程不说,最后把API Key值记录下来 二 核心功能开发 这个小项目的目录结构: 核心功能文件TuringRobot.java,代码很简单,一看就明白,代码如下: package act

Net Core平台灵活简单的日志记录框架NLog初体验

Net Core平台灵活简单的日志记录框架NLog初体验 前几天分享的"[Net Core集成Exceptionless分布式日志功能以及全局异常过滤][https://www.cnblogs.com/yilezhu/p/9339017.html]" 有人说比较重量,生产环境部署也比较麻烦.因此就有了今天的这篇文章.如果你的项目(网站或者中小型项目)不是很大,日志量也不多的话可以考虑NLog+Mysql的组合.因为NLog具有高性能,易于使用,易于扩展和灵活配置的特点能够让你快速集成日

Java闭关修炼64课 很适合新手学习的JAVA视频教程

Java闭关修炼64课 很适合新手学习的JAVA视频教程 java闭关修炼第一课 什么是java(1).rar  java闭关修炼第一课 什么是java.rar  java闭关修炼第七课 基础语言要素(1).rar  java闭关修炼第七课 基础语言要素.rar  java闭关修炼第三十一课 静态方法(1).rar  java闭关修炼第三十一课 静态方法.rar  java闭关修炼第三十七课 成员初始化顺序讨论(1).rar  java闭关修炼第三十七课 成员初始化顺序讨论.rar  java闭

Xamarin+Prism开发详解四:简单Mac OS 虚拟机安装方法与Visual Studio for Mac 初体验

Mac OS 虚拟机安装方法 最近把自己的电脑升级了一下SSD固态硬盘,总算是有容量安装Mac 虚拟机了!经过心碎的安装探索,尝试了国内外的各种安装方法,最后在youtube上找到了一个好方法. 简单总结一下成功安装方法: 1,Vmware Player 12.1.1-3770994(Virtual Box 老版本Win10上启动不了,新版本5.1不再支持Mac OS) 2,执行命令关闭Hyper-v服务重启:bcdedit /set hypervisorlaunchtype off (不然无法

spring mvc开发入门实例demo源代码下载,很适合新手入门学习用。

原文:spring mvc开发入门实例demo源代码下载,很适合新手入门学习用. 源代码下载:http://www.zuidaima.com/share/1550463469046784.htm Eclipse + Maven + Spring MVC - Simple Example 源代码框架截图: