AngularJS从入门到精通
第一
AngularJS的四大特性
1. MVC
例如:使用angularjs向模板传递数据
<!doctype html>
<html>
<head>
<meta charset="UTF-8">
<script src="http://cdn.static.runoob.com/libs/angular.js/1.4.6/angular.min.js"></script>
<script src="user.js"></script>
</head>
<body ng-app="myApp" ng-controller="user">
<p>{{user_name}}</p>
</body>
</html>
var app = angular.module('myApp', []);
app.controller('user', function($scope) {
$scope.user_name = "liudaoqiang";
});
2 模块化
var app = angular.module('myApp', []);
/*
app.controller('user', function($scope) {
$scope.user_name = "liudaoqiang";
});
*/
app.controller('user', ['$scope', function user($scope){
$scope.user_name = 'liuzhiqiangxyz';
}]);
3.指令
<!doctype html> <html> <head> <meta charset="UTF-8"> <script src="http://cdn.static.runoob.com/libs/angular.js/1.4.6/angular.min.js"></script> <script src="directive.js"></script> </head> <body ng-app="myApp"> <username></username/> </body> </html>
var app = angular.module('myApp', []);
app.directive('username', function(){
return {
'retrict':'E',
'template':'<div>liudaoqiang</div>',
'replace':true,
}
});
4.双向数据绑定
例如:显示和输入的数据一致实时同步
<!doctype html>
<html>
<head>
<meta charset="UTF-8">
<script src="http://cdn.static.runoob.com/libs/angular.js/1.4.6/angular.min.js"></script>
</head>
<body ng-app="">
<input name="python" ng-model="user_input">
<p>{{user_input}}</p>
</body>
</html>
注意:
angularjs的代码要记住ng-app, ng-controller, ng-model这三个基本属性,若发现代码没有效果,需检查这些属性
第二
前端开发环境搭建
1. 代码编辑工具
例如:
sublime和webstorm
2. 断点调试工具
工具为chrome浏览器的batarang
3. 版本管理工具
例如:
git
4. 代码合并和混淆工具
使用nodejs的插件,例如npm,grunt
grunt为代码混淆工具,官网为gruntjs.com
5. 依赖管理工具
依赖管理工具为bower,官网为bower.io
使用bower下载js插件例如
bower install jquery
bower install bootstrap
当使用bower uninstall jquery是会提示是否真的卸载,因为bootstrap是依赖于jquery的
作用有:
自动安装依赖的组件
解决组件之间的兼容性
解决版本之间的兼容性
6. 轻量级httpserver
即nodejs的插件http-server
下载地址为github.com/nodeapps/http-server
启动http-server的命令为http-server
安装为:
npm install karma
npm install jasmine
7. 单元测试工具
工具为karma, karma为单元测试容器,真正单元测试工具为jasmine
下载地址为jasmine.github.io
8. 集成测试工具
工具为protractor,专门为angularjs而设计的
MVC
js的执行顺序为首先浏览器加载js,然后由JIT编译执行
1.为什么使用MVC
切分职责,复用,后期维护方便
注意:MVC只是手段,终极目的是模块化和复用
2. 前端MVC的困难
DOM操作必须等待所有页面加载完成
各个浏览器加载不同js的顺序是不一样,js之间的依赖需要程序员手动解决
js的原型继承也给MVC的实现带来了困难
3. 使用控制器应该注意的事项
不要复用控制器,控制器一般只负责一小块视图
不要在控制器中操作DOM,这不是控制器的职责
不要在控制器里做数据格式化,ng有很好用的表单空间
不要在控制器中做数据过滤,ng有$filter服务
不要在控制器中相互调用,控制器之间的交互通过事件
AngularJS从入门到精通的更多相关文章
- laravel从5.2到5.5从入门到精通视频教程共16套
laravel从5.2到5.5从入门到精通视频教程共16套,大部分都是实战项目比如P2P.博客.短网址.知乎门户.app软件开发.微信商城实战等 课程目录: 01.Laravel框架从入门到精通02. ...
- <程序员从入门到精通> -- How
定位 自己才是职业生涯的管理者,想清楚自己的发展路径: 远期的理想是什么?近期的规划是什么?今日的任务和功课又是什么? 今日之任务或功课哪些有助于近期之规划的实现,而近期之规划是否有利于远期之理想? ...
- 【无私分享:从入门到精通ASP.NET MVC】从0开始,一起搭框架、做项目 目录索引
索引 [无私分享:从入门到精通ASP.NET MVC]从0开始,一起搭框架.做项目(1)搭建MVC环境 注册区域 [无私分享:从入门到精通ASP.NET MVC]从0开始,一起搭框架.做项目(2)创建 ...
- ASP.NET MVC4入门到精通系列目录汇总
序言 最近公司在招.NET程序员,我发现好多来公司面试的.NET程序员居然都没有 ASP.NET MVC项目经验,其中包括一些工作4.5年了,甚至8年10年的,许多人给我的感觉是:工作了4.5年,We ...
- Web jquery表格组件 JQGrid 的使用 - 从入门到精通 开篇及索引
因为内容比较多,所以每篇讲解一些内容,最后会放出全部代码,可以参考.操作中总会遇到各式各样的问题,个人对部分问题的研究在最后一篇 问题研究 里.欢迎大家探讨学习. 代码都经过个人测试,但仍可能有各种未 ...
- 1、ASP.NET MVC入门到精通——新语法
本系列目录:ASP.NET MVC4入门到精通系列目录汇总 在学习ASP.NET MVC之前,有必要先了解一下C#3.0所带来的新的语法特性,这一点尤为重要,因为在MVC项目中我们利用C#3.0的新特 ...
- 5、ASP.NET MVC入门到精通——NHibernate代码映射
本系列目录:ASP.NET MVC4入门到精通系列目录汇总 上一篇NHibernate学习笔记—使用 NHibernate构建一个ASP.NET MVC应用程序 使用的是xml进行orm映射,那么这一 ...
- 6、ASP.NET MVC入门到精通——ASP.Net的两种开发方式
本系列目录:ASP.NET MVC4入门到精通系列目录汇总 目前,ASP.NET中两种主流的开发方式是:ASP.NET Webform和ASP.NET MVC.从下图可以看到ASP.NET WebFo ...
- 7、ASP.NET MVC入门到精通——第一个ASP.NET MVC程序
本系列目录:ASP.NET MVC4入门到精通系列目录汇总 开发流程 新建Controller 创建Action 根据Action创建View 在Action获取数据并生产ActionResult传递 ...
随机推荐
- java xml文件中相同Id遍历
import java.io.File;import java.util.List;import org.dom4j.Document;import org.dom4j.DocumentExcepti ...
- day23 Pythonpython 本文re模块
re模块用于对python的正则表达式的操作. 字符: . 匹配除换行符以外的任意字符 \w 匹配字母或数字或下划线或汉字 \s 匹配任意的空白符 \d 匹配数字 \b 匹配单词的开始或结束 ^ 匹配 ...
- Linux系统学习之Linux账号管理
一.基本介绍 Linux用户分为三类,即普通用户.根用户.系统用户. 普通用户指的是所有使用Linux系统的真实用户. 根用户就是root用户,权限最大,它的ID为0,也被称为超级用户,root用户拥 ...
- 巩固python基础
python是一门解释性的语言 变量命名规则 1.变量由字母,数字,下划线组成 2.不能用数字开头 3.禁止使用关键字 ‘and’,‘as’,‘assert’,‘break’,‘class’,‘con ...
- BZOJ1069 SCOI2007 最大土地面积 凸包、旋转卡壳
传送门 在这里假设可以选择两个相同的点吧-- 那么选出来的四个点一定会在凸包上 建立凸包,然后枚举这个四边形的对角线.策略是先枚举对角线上的一个点,然后沿着凸包枚举另一个点.在枚举另一个点的过程中可以 ...
- Python 学习 第十四篇:命名元组
Python的元组不能为元组内部的数据进行命名,而 collections.namedtuple 可以来构造一个含有字段名称的元组类,命名元组可以通过逗号+字段名来获取元素值: collections ...
- iOS开发简记(8):数据持久化
数据持久化,也就是把数据保存到磁盘,以后可以再读取出来使用(也可以再次更改或删除).很多场景需要数据持久化,比如为了减轻服务器的访问与存储压力,客户端需要在本地做一些数据持久化的工作. iOS的数据持 ...
- 【开源】小程序、小游戏和Web运动引擎 to2to 发布
简单轻量跨平台的 Javascript 运动引擎 Github → https://github.com/dntzhang/cax/tree/master/packages/to Simple DEM ...
- Linux stress 命令
stress 命令主要用来模拟系统负载较高时的场景,本文介绍其基本用法.文中 demo 的演示环境为 ubuntu 18.04. 基本语法 语法格式:stress <options> 常用 ...
- python3 urllib及requests基本使用
在python中,urllib是请求url连接的标准库,在python2中,分别有urllib和urllib,在python3中,整合成了一个,称谓urllib 1.urllib.request re ...