Angular框架-1

1,Angular是一个非常优秀的前端js框架,它是由谷歌团队负责研发和维护的,通常用来构建单页面应用。angular自身有很多颠覆性的特性,改变了前端的编码格式,大大简化了我们的工作。

2,Angular的核心思想:通过指令扩展 html ,通过表达式绑定数据到 html . angularjs不推崇dom操作,也就是说在ng中几乎找不到任何dom操作,一切操作以数据为中心,用数据操作dom.

3, html和angularjs模块的关系是:管理与被管理的关系,我们创建了angularjs模块,通过模块对象创建控制器,进而通过控制器去管理相应的区域。请参考下图:


4,双向数据绑定:我们通过anjularjs去监听html页面中文本框的值变化,将最新的值给到js中对应的变量,当这个变量发生变化时,angularjs又回去html页面中查找谁在使用这个变量,找到后将变量更新为最新的值。实现双向绑定的必要条件是必须要是表单元素,且设置了ng-model;

5,angularjs的一些语法整理:(前提:先引入angular.js )

(1)创建模块:angular.module( '模块名字' , [依赖模块] )

(2)创建控制器:angular.controller('控制器名字',[ '$scope',function($scope){  } ])

(3)配置路由:有两种方式:

第一种:angular-route : 

将ngRoute作为依赖模块;

然后配置路由:模块对象.config( function( $routeProvider){   

$routeProvider.when( '锚点值',{  template/templateUrl : "请求模版" }  ).when('锚点值',{  template/templateUrl : "请求模版" }  ).otherwise("默认锚点值")

 })

页面中要有一个盒子设置属性 ng-view然后情求到的内容会呈现在这个盒子中。

第二种:angular-ui-router:

将ui.router作为依赖模块;

然后配置路由:模块对象.config( function($stateProvider){

$stateProvider.state( { url:锚点值;template/templateUrl:"请求模版"; name:"路由名字" }).state({ url:锚点值;template/templateUrl:"请求模版"; name:"路由名字" })      })

页面中要有一个盒子设置属性 ui-view然后情求到的内容会呈现在这个盒子中。注意页面链接中href属性不能设置,应该设置 ui-sref ='路由名字'。

(4)自定义指令:模块对象.directive( '指令名字',[ function(){

return {   

transclude:true;  // 是否保存原指令标签内部的信息(不是模版中的信息)

template/templateUrl :"模版路径";

restrict: ECMA //可以使用的指令类型:依次为:元素,类名,注释,属性

replace:true //是否删除自定义标签

scope: true / false / { }  //是否开辟一个局部作用域,自定义指令默认没有作用域

link:function(scope,element,attributes){   dom操作  }

 }  ])

关于自定义指令有几点需要说明;(1)scope 的取值:1-如果没有写这个属性或者赋值为false,都是默认不开辟局部作用域,会继承父级 ;2-如果赋值为true,会开辟一个局部作用域,也会继承父级;3-如果赋值为一个对象 :则为隔离作用域。比如{msg : "@" },则@会去指令所在的元素身上找有没有一个叫做msg的同名属性,如果有,将同名属性的值赋给当前指令内部的msg,通过@取到的数据,得到的结果都是字符串。如果是{ msg:"=" } ,情况和上面一样,只不过此时msg原本是什么类型就得到什么类型 (2)link函数中的三个参数说明:三个形参可以随意指定,不过注意语义化;第一个形参scope:向指令所在的模版内部暴露数据 ; 第二个参数element:当前指令所在的元素;第三个参数:当前指令所在元素身上的属性集合;

今天先更新到这里,稍后继续.........

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容