在使用angularJs 项目开发中使用的第三方插件
a). AngularUi
b). ui-router
c). oclazyloadAngularJS的数据双向绑定是怎么实现的?
a)、每个双向绑定的元素都有一个watcher
b)、在某些事件发生的时候,调用digest脏数据检测。 这些 事件有:表单元素内容变化、Ajax请求响应、点击按钮执行 的函数等。
c)、脏数据检测会检测rootscope下所有被watcher的元素。
$digest函数就是脏数据监测controller之间怎么通讯
1).event
$scope.$emit,通过监听$rootScope的事件获取参数;
$rootScope.$broadcast,通过监听$scope的事件获取 参数。
事件发送的方向不同
2).创建service
创建一个专用的事件Service,按照业务逻辑切分,将数据存储在相应的Service中
3).$rootScope
把数据存在$rootScope中,这样各个子$scope都可以调用
不过需要注意一下生命周期
4.自定义指令参数
1). restrict:指令在dom中的声明形式 E(元素)A(属性)C(类名)M(注释)
2). template:两种形式 HTML 形式和templateUrl(HTML文件路径)
3). compile函数
如果设置了 compile 函数, 说明我们希望在指令和实时数据被放到DOM中之前进行DOM操作, 在这个函数中进行诸如添加和删除节点等DOM操作是安全的。
compile和link的区别:
编译的时候,compile转换dom, 碰到绑定监听器的地方就先存着, 有几个存几个,到最后汇总成一个link函数, 一并执行,提升了性能angular中的$http
1).$http 是 AngularJS 中的一个核心服务, 用于读取远程服务器的数据。
2). 我们可以使用内置的$http服务直接同外部进行通信。
3). $http服务只是简单的封装了浏览器原生的XMLHttpRequest对象
7.angular和jquery的区别
angular是基于数据驱动,angular适合做数据操作比较繁琐的项目单页面应用
jquery是基于dom驱动,jquery适合做dom操作多的项目
8.angular的mvvm主要分为四部分
1).View:它专注于界面的显示和渲染,
2).ViewModel( $scope):负责View和Model的交互和协作, 给 View提供显示的数据, View中Command事件操作Model的途径;
3). Model:业务逻辑相关的封装载体, service是 封装和处理这些与Model相关的业务逻辑的场所, 可以被多个Controller或者其他service复用。
4).Controller:负责ViewModel对象的初始化, 组合一个或者多个service获取Model到ViewModel 在启动加载应用时达到一种可用的状态
- mvvm的优点:
低耦合高内聚:视图层可以独立于model层进行修改, 同一模块可以被反复利用可重复利用:一次书写多次利用
独立开发:开发人员专注于代码的编写 设计人员专注于UI的开发
可测试性:清晰地view层,逻辑表达更清晰