angular 知识

  1. 在使用angularJs 项目开发中使用的第三方插件
    a). AngularUi
    b). ui-router
    c). oclazyload

  2. AngularJS的数据双向绑定是怎么实现的?
    a)、每个双向绑定的元素都有一个watcher
    b)、在某些事件发生的时候,调用digest脏数据检测。 这些 事件有:表单元素内容变化、Ajax请求响应、点击按钮执行 的函数等。
    c)、脏数据检测会检测rootscope下所有被watcher的元素。
    $digest函数就是脏数据监测

  3. 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操作是安全的。

  1. compile和link的区别:
    编译的时候,compile转换dom, 碰到绑定监听器的地方就先存着, 有几个存几个,到最后汇总成一个link函数, 一并执行,提升了性能

  2. 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 在启动加载应用时达到一种可用的状态

  1. mvvm的优点:
    低耦合高内聚:视图层可以独立于model层进行修改, 同一模块可以被反复利用可重复利用:一次书写多次利用
    独立开发:开发人员专注于代码的编写 设计人员专注于UI的开发
    可测试性:清晰地view层,逻辑表达更清晰

你可能感兴趣的:(angular 知识)