AngularJS
来源:互联网 发布:淘宝客服不理人 编辑:程序博客网 时间:2024/06/07 07:26
今天看视频学习了AngularJS部分,了解最基础的知识,下面是简单的复习知识点。
AngularJS有着诸多特性,最为核心的是:MVC、模块化、自动化双向数据绑定、语义化标签、依赖注入等等。
MVC
Model模型:一般用来处理数据(读取/设置),一般指操作数据库。
View视觉:一般用来展示数据,比如通过HTML展示。
Controller控制器:一般用做连接模型和视图的桥梁。
定义模块
AugularJS提供一个全局对象angular,在此对象下有N种方法
其中module方法可以帮我们创建一个模块。
var app=angular.module('app',[ ]);
定义控制器
app.controller('appController',['$scope',function($scope){}]);
需要两个参数,第一个参数表示控制器名称,第二个参数是一个数组,这个数组除最后1个单元是函数外,其余都是字符串,标明此控制器的依赖关系。
通过为HTML标签添加ng-controller属性并赋值相应的控制器(Controller)的名称,就确立了关联关系。
内置指令
ng-app
用于告诉 AngularJS 应用当前这个元素是根元素。
所有 AngularJS 应用都必须要要一个根元素。
HTML 文档中只允许有一个 ng-app 指令,如果有多个 ng-app 指令,则只有第一个会被使用。
ng-controller
用于为你的应用添加控制器。在控制器中,你可以编写代码,制作函数和变量,并使用 scope 对象来访问。
<element ng-controller="expression"></element>
ng-model
绑定了 HTML 表单元素到 scope 变量中。
如果 scope 中不存在变量, 将会创建它。
<div ng-app="myApp" ng-controller="myCtrl"> <input ng-model="name"></div><script>var app = angular.module('myApp', []);app.controller('myCtrl', function($scope) { $scope.name = "John Doe";});</script>
ng-repeat
用于循环输出指定次数的 HTML 元素。集合必须是数组或对象。
<body ng-app="myApp" ng-controller="myCtrl"><h1 ng-repeat="x in records">{{x}}</h1><script>var app = angular.module("myApp", []);app.controller("myCtrl", function($scope) { $scope.records = [ "教程1", "教程2", "教程3", "教程4", ]});</script></body>
ng-switch
根据表达式显示或隐藏对应的部分。
对应的子元素使用 ng-switch-when 指令,如果匹配选中选择显示,其他为匹配的则移除。
你可以通过使用 ng-switch-default 指令设置默认选项,如果都没有匹配的情况,默认选项会显示。
<div ng-controller="DemoController"> <ul> <li ng-repeat="item in items" ng-switch="item"> <span ng-switch-when="css">{{item}}</span> </li> </ul> </div> <script> var App = angular.module('App', []); App.controller('DemoController', ['$scope', function ($scope) { $scope.items = ['html', 'css', 'js']; }]); </script>
ng-click
告诉了 AngularJS HTML 元素被点击后需要执行的操作。
<button ng-click="count = count + 1" ng-init="count=0">OK</button>
ng-show
在表达式为 true 时显示指定的 HTML 元素,否则隐藏指定的 HTML 元素。
<element ng-show="expression"></element>
ng-hide
在表达式为 true 时隐藏 HTML 元素。ng-hide 是 AngularJS 的预定义类,设置元素的 display 为 none。
<element ng-hide="expression"></element>
ng-if
用于在表达式为 false 时移除 HTML 元素。
如果 if 语句执行的结果为 true,会添加移除元素,并显示。
ng-if 指令不同于 ng-hide, ng-hide 隐藏元素,而 ng-if 是从 DOM 中移除元素。
<element ng-if="expression"></element>
ng-src
覆盖了 元素的 src 属性。
如果你使用了 AngularJS 代码设置图片地址,请使用 ng-src 指令替代 src 属性。
ng-src 指令确保的 AngularJS 代码执行前不显示图片。
<img ng-src="string"></img>
ng-href
覆盖了原生的 元素 href 属性。
如果在 href 的值中有 AngularJS 代码,则需要使用 ng-href 而不是 href。
ng-href 指令确保了链接是正常的,即使在 AngularJS 执行代码前点击链接。
<a ng-href="string"></a>
ng-class
用于给 HTML 元素动态绑定一个或多个 CSS 类。
<div ng-class="home"> <h1>Welcome Home!</h1> <p>I like it!</p></div>
ng-class 指令的值可以是字符串,对象,或一个数组。
如果是字符串,多个类名使用空格分隔。
如果是对象,需要使用 key-value 对,key 为你想要添加的类名,value 是一个布尔值。只有在 value 为 true 时类才会被添加。
如果是数组,可以由字符串或对象组合组成,数组的元素可以是字符串或对象。
ng-include
用于包含外部的 HTML 文件。
<div ng-include="'myFile.htm'"></div>
包含的内容将作为指定元素的子节点。
ng-include 属性的值可以是一个表达式,返回一个文件名。
默认情况下,包含的文件需要包含在同一个域名下。
ng-disabled
设置表单输入字段的 disabled 属性(input, select, 或 textarea)。
如果 ng-disabled 中的表达式返回 true 则表单字段将被禁用。
<input type="checkbox" ng-model="all"><br><input type="text" ng-disabled="all">
ng-readonly
用于设置表单域(input 或 textarea) 的 readonly 属性。
如果 ng-readonly 属性的表达式返回 true 则表单域为只读。
<input type="checkbox" ng-model="all"><br><input type="text" ng-readonly="all">
ng-checked
用于设置复选框(checkbox)或单选按钮(radio)的 checked 属性。如果 ng-checked 属性返回 true,复选框(checkbox)或单选按钮(radio)将会被选中。
<input type="checkbox" ng-model="all"> Check all<br><br><input type="checkbox" ng-checked="all">Volvo<br>
ng-selected
用于设置 option 元素的 selected 属性。
ng-selected 属性的表达式返回 true 则选项被选中。
<option ng-selected="expression"></option>
ng-cloak
用于在 AngularJS 应用在加载时防止 AngularJS 代码未加载完而出现的问题。
AngularJS 应用在加载时,文档可能会由于AngularJS 代码未加载完而出现显示 AngularJS 代码,进而会有闪烁的效果, ng-cloak 指令是为了防止该问题的发生。
<div ng-app=""><p ng-cloak>{{ 5 + 5 }}</p></div>
在AngularJS中通过“{{}}”和ng-bind指令来实现模型(Model)数据向视图模板(View)的绑定,模型数据通过一个内置服务
注:“{{}}”是ng-bind的简写形式,其区别在于通过“{{}}”绑定数据时会有“闪烁”现象,添加ng-cloak也可以解决“闪烁”现象,通过ng-bind-template可以绑定多个数据。
数据绑定
1.单向绑定
单向数据绑定是指将模型(Model)数据,按着写好的视图(View)模板生成HTML标签,然后追加到DOM中显示,如之前所学的artTemplate 模板引擎的工作方式。
2.双向绑定
双向绑定则可以实现模型(Model)数据和视图(View)模板的双向传递,
- AngularJS
- angularjs
- Angularjs
- angularJS
- AngularJS
- AngularJS
- AngularJS
- AngularJs
- AngularJS
- AngularJs
- AngularJs
- AngularJS
- AngularJS
- AngularJS
- AngularJS
- AngularJS
- angularjs
- AngularJS
- Java集合系列-HashMap
- 2017.11.22 LeetCode
- bzoj 2257 裴蜀定理
- sql语句大全
- 软件开发的噩梦--项目分支
- AngularJS
- C++逐行读取文件
- 673. Number of Longest Increasing Subsequence
- 【C/C++】计时函数比较
- 欢迎使用CSDN-markdown编辑器
- TensorFlow实现用于图像分类的卷积神经网络(代码详细注释)
- Pytorch从入门到精通(一):线性模型
- Java并发学习(三)-AbstractQueuedSynchronizer
- golang基础-etcd介绍与使用、etcd存取值、etcd监测数据写入