angular框架,库,是一款非常优秀的前端高级JS框架,有了这个框架就可以轻松构建SPA应用程序,通过指令宽展了HTML,通过表达式绑定数据到HTML。

轻松构建SPA应用程序,单一页面应用程序

http://www.cnblogs.com/powertoolsteam/p/angularjs-introdection.html

http://www.apjs.net/

http://www.angularjs.cn/

http://docs.angularjs.cn/api

https://material.angularjs.org

http://angular-ui.github.io/

更少的代码,实现更强劲的功能

[外链图片转存失败(img-HSRDgmSj-1563690800882)(https://upload-images.jianshu.io/upload_images/11158618-3f278ee6f6c7fc61.png?imageMogr2/auto-orient/strip|imageView2/2/w/1240)]

[外链图片转存失败(img-XMuEZKk2-1563690800886)(https://upload-images.jianshu.io/upload_images/11158618-3a2e50c85d2e7d98.png?imageMogr2/auto-orient/strip|imageView2/2/w/1240)]

传统方式实现加法运算

[外链图片转存失败(img-UqCMrU0F-1563690800886)(https://upload-images.jianshu.io/upload_images/11158618-69a14966afc61656.png?imageMogr2/auto-orient/strip|imageView2/2/w/1240)]

Angular实现加法运算

[外链图片转存失败(img-TGDvy7Nw-1563690800888)(https://upload-images.jianshu.io/upload_images/11158618-5ea12ec8859bd400.png?imageMogr2/auto-orient/strip|imageView2/2/w/1240)]

传统方式实现数据列表呈现

[外链图片转存失败(img-ZGMi83kB-1563690800889)(https://upload-images.jianshu.io/upload_images/11158618-b488273f7a6a4d90.png?imageMogr2/auto-orient/strip|imageView2/2/w/1240)]

[外链图片转存失败(img-gxIYPbJe-1563690800892)(https://upload-images.jianshu.io/upload_images/11158618-7ac2a8e2422e85ea.png?imageMogr2/auto-orient/strip|imageView2/2/w/1240)]

AngularJS

MVC

模块化

自动化双向数据绑定

指令系统

下载 Angular.js 的包

https://github.com/angular/angular.js/releases

使用 CDN 上的 Angular.js

http://apps.bdimg.com/libs/angular.js/1.4.9/angular.min.js

使用 Bower 安装

bower install angular

使用 NPM 安装

npm install angular

创建一个新的HTML文件

[外链图片转存失败(img-UVDyruFc-1563690800894)(https://upload-images.jianshu.io/upload_images/11158618-684bd9d5d860ccaa.png?imageMogr2/auto-orient/strip|imageView2/2/w/1240)]

HTML 页面中 ng-xxx 的属性称之为指令

ng-app 指令告诉 AngularJS,

元素是 AngularJS 应用程序管理的边界

ng-model 指令把文本框的值绑定到变量 name 上

Angular 最大程度的减少了页面上的 DOM 操作

让 JavaScript 中专注业务逻辑的代码

通过简单的指令结合页面结构与逻辑数据

通过自定义指令实现组件化编程

我们需要本地运行 Angular 文档

下载最新的 Angular 包

MVC 是一种应用程序的开发思想

为了解决应用程序展示结构,业务逻辑之间的紧耦合关系

模型

处理数据和业务逻辑

视图

向用户展示数据

控制器

组织调度相应的处理模型

AngularJS很重要的一个特性就是实现模块化编程

var myApp = angular.module(“MyApp”, []);

控制器

angular.module('OneApp', [])
.controller('HelloController', [
'$scope',
function($scope) {
$scope.p = {
name: 'zhangsan'
};
}
]);

控制器

为应用中的模型设置初始状态

通过$scope对象把数据模型或函数行为暴露给视图

监视模型的变化,做出相应的动作

// 监视购物车内容变化,计算最新结果
$scope.$watch(‘totalCart’, calculateDiscount);

scope(上下文模型)视图和控制器之间的桥梁用于在视图和控制器之间传递数据利用scope(上下文模型)
视图和控制器之间的桥梁
用于在视图和控制器之间传递数据
利用scope(上下文模型)视图和控制器之间的桥梁用于在视图和控制器之间传递数据利用scope暴露数据模型(数据,行为)

AngularJS 表达式可以包含字母,操作符,变量

ng-repeat指令用来编译一个数组重复创建当前元素

<ul class="messages">
<li ng-repeat="item in messages track by $index">
{{item}}
</li>
</ul>
<ul class="messages">
<li ng-repeat="item in messages track by $index" ng-class="{red:item.read}">
{{item.content}}
</li>
</ul>

ng-show/ng-hide 指令

ng-link/ng-src 指令

<!-- 浏览器在解析HTML时会去请求{{item.url}}文件 -->
<img src="{{item.url}}">
<!-- 可以使用ng-src解决该问题 -->
<img ng-src="{{item.url}}">

ng-model

ng-class

ng-show/ng-hide/ng-if

ng-click

ng-link/ng-src

过滤器(Filter)

过滤器的主要用途就是一个格式化数据的小工具,

date 过滤器

<span>{{'1284893553026' | date:"MM/dd/yyyy 'at' h:mma"}}</span>

limitto 过滤器

limitto过滤器用于限制一个字符串或数组展示的长度:

<ul class="messages">
<li ng-repeat="item in messages | limitTo:-2">
{{item.content | limitTo:2 }}
</li>
</ul>

filter过滤器会根据设置的检索数据过滤未匹配到的数据内容

<ul class="messages">
<li ng-repeat="item in messages | filter:{content:123}">
{{item.content}}
</li>
</ul>

Form 表单 – 验证规则

必填项 required or ng-required

最小长度 minlength or ng-minlength

最大长度 maxlength

类型 type(number、email)

服务(Service)

公用(公共)的业务逻辑集中存放的一段代码

通过模块的service方法创建一个服务:

var myApp = angular.module('MyApp', []);
// 通过factory方法创建一个公用的service
var userService = myApp.service('UserService', function() {
var users = { 1: 'zhangsan1', 2: 'zhangsan2' };
return {
getUser: function(id) {
return users[id];
},
addUser: function(id, name) {
users[id] = name;
},
};
});

$http服务是AngularJS中处理AJAX的服务

// Simple GET request example:
$http({
method: 'GET',
url: '/someUrl'
}).then(function successCallback(response) {
// this callback will be called asynchronously
// when the response is available
}, function errorCallback(response) {
// called asynchronously if an error occurs
// or server returns response with an error status.
});

MVC

Model(数据模型,业务逻辑)

View(界面展示,展示结构)

Controller(控制器,控制逻辑)

[外链图片转存失败(img-N8IwiIAh-1563690800895)(https://upload-images.jianshu.io/upload_images/11158618-610f34fe5d36d11d.png?imageMogr2/auto-orient/strip|imageView2/2/w/1240)]

AngularJS实现了双向数据绑定


请点赞!因为你们的赞同/鼓励是我写作的最大动力!

欢迎关注达叔小生的简书!

这是一个有质量,有态度的博客

[外链图片转存失败(img-srRjojvx-1563690800898)(https://upload-images.jianshu.io/upload_images/11158618-9ab0d3fef85d80ce?imageMogr2/auto-orient/strip|imageView2/2/w/1240)]

(4)Angular的开发的更多相关文章

  1. VS2017的MVC和Angular联合开发的配置文件作用

    在通过MVC和Angular联合开发项目时,项目里有几个重要的配置文件,下面列出这几个配置文件的分析和比较: 主要配置文件有appsettings.json,tsconfig.json,package ...

  2. 安装Angular CLI开发工具

    目前,无论你使用什么前端框架,都必然要用到NodeJS工具,Angular也不例外,与其他框架不同的是,Angular一开始就使用"全家桶"式的设计思路,因此@angular/cl ...

  3. Angular企业级开发(5)-项目框架搭建

    1.AngularJS Seed项目目录结构 AngularJS官方网站提供了一个angular-phonecat项目,另外一个就是Angular-Seed项目.所以大多数团队会基于Angular-S ...

  4. Angular企业级开发-AngularJS1.x学习路径

    博客目录 有链接的表明已经完成了,其他的正在建设中. 1.AngularJS简介 2.搭建Angular开发环境 3.Angular MVC实现 4.[Angular项目目录结构] 5.[SPA介绍] ...

  5. Angular企业级开发(2)-搭建Angular开发环境

    1.集成开发环境 个人或团队开发AngularJS项目时,有很多JavaScript编辑器可以选择.使用优秀的集成开发环境(Integrated Development Environment)能节省 ...

  6. Angular企业级开发(6)-使用Gulp构建和打包前端项目

    1.gulp介绍 基于流的前端自动化构建工具,利用gulp可以提高前端开发效率,特别是在前后端分离的项目中.使用gulp能完成以下任务: 压缩html.css和js 编译less或sass等 压缩图片 ...

  7. Angular企业级开发(7)-MVC之控制器

    1.MVC中的控制器 AngularJS的控制器主要为了把模型和视图连接在一起.大多数业务逻辑操作都会放在视图对应的控制器中.当然如果我们能够把业务逻辑放到后端的REST服务中,就可以开发轻量级Ang ...

  8. 52abp框架asp.net core & Angular快速开发实战视频教程

    课程标题 52abp框架asp.net core & Angular全栈开发实战视频课程 课程简介 从零开始学 52ABP企业开发框架,企业项目是如何开发和技术选型,代码如何管理,团队协同开发 ...

  9. angular 4 开发环境下打包文件过大

    angular 4本地开发环境下,ng server -- port 8080 -o 之后在在浏览器中查看数据请求,其中vendor.bundle.js有8.3mb,而整个传输数据大小为16.3mb ...

  10. Angular 项目开发中父子组件传参

    在项目开发中经常会遇到 组件之间传参的问题.今天总结下在使用angular的项目中父子组件传参的问题: 1.父组件向子组件传参: 然后在父组件中 然后在父组件的html中 然后就可以在子组件中使用了 ...

随机推荐

  1. go 读取BMP文件头二进制读取

    BMP文件头定义: WORD 两个字节 16bit DWORD 四个字节 32bit package main import ( "encoding/binary" "f ...

  2. WebAPI 之问题记录

    这篇博客是博主的第一篇博客,主要用于webapi学习过程中的问题记录 问题1:  重写OnAuthorization权限验证时,遇到AllowAnonymousAttribute特性不起作用的问题 p ...

  3. QSDK与OPENWRT区别

    QSDK与OPENWRT区别 来源 https://www.jianshu.com/p/178ae18b2570 QSDK是一种在openwrt的基础上,加入了高通atheros芯片相关资料的一种环境 ...

  4. H3C S3600V2 通过CONSOLE配置端口镜像

    前24口为百兆口 对应序号为 Ethernet 1/0/(0~24) 25 26为千兆口 对应序号为 GigabitEthernet 1/0/(25~26) 以下是通过25号千兆口监听1号百兆口的例子 ...

  5. 【洛谷 P3975】 [TJOI2015]弦论(后缀自动机)

    题目链接 建出后缀自动机. T=0,每个子串算一次,否则每个子串算该子串的\(endpos\)集合大小次. 用\(f[i]\)表示结点\(i\)表示的\(endpos\)集合大小,则\(f[i]\)为 ...

  6. stage1----航空票务系统需求分析报告

    航空票务管理系统需求分析报告 题    目    航空票务管理系统需求分析报告 学    院       信息科学与工程学院 专    业        计算机科学与技术 组    员         ...

  7. D1-JavaScript

    下面的代码,我想要打印出hey jack,结果却打印出hey rose,为什么? function greet(person) { if (person == {name: 'jack'}) { co ...

  8. vue和react之间的区别

    1.Vue和React之间的区别 相同点: Vue和其他框架一样,都有组件开发和虚拟dom 都支持props进行父子组件之间的数据通信 都支持数据驱动视图,不直接操作真实dom 都支持服务器端的 渲染 ...

  9. jenkens docker启动

    docker run \ -u root \ --rm \ -d \ -p 8080:8080 \ -p 50000:50000 \ -v jenkins-data:/var/jenkins_home ...

  10. php图形图像处理技术

    图形图像处理技术,gd库的强大支持,PHP的图像可以是PHP的强项,PHP图形化类库,jpgraph是一款非常好用的强大的图形处理工具. 在PHP中加载GD库 gd官方网址下载: http://www ...