02
2020
06

. $apply()和$digest()的区别

安全性:$apply()可以接收一个参数作为function(),这个function会被包装到一个try…catch块中,所以一旦有异常发生,该异常会被$exceptionHandler service处理。$apply会使ng进入$digest cycle ,并从$rootScope开始遍历(深度优先)检查数据变更。$digest仅会检查该scope和它的子scope,当你确定当前操作仅影响它们时,用$digest可以稍微提升性能。
02
2020
06

angular的缺点有哪些?

1.强约束导致学习成本较高,对前端不友好。但遵守AngularJS的约定时,生产力会很高,对Java程序员友好。2.不利于SEO因为所有内容都是动态获取并渲染生成的,搜索引擎没法爬取。一种解决办法是,对于正常用户的访问,服务器响应AngularJS应用的内容;对于搜索引擎的访问,则响应专门针对SEO的HTML页面。3..性能问题作为MVVM框架,因为实现了数据的双向绑定,对于大数组、复杂对象会存在性能问题。可以用来优化Angular应用的性能 的办法:减少监控项(比如对不会变化的数据采用单向绑定
02
2020
06

分属不同团队进行开发的angular应用,如果要做整合,可能会遇到哪些问题,如何解决?

可能会遇到不同模块之间的冲突。比如一个团队所有的开发在moduleA下进行,另一团队开发的代码在moduleB下angular.module('myApp.moduleA', []).factory('serviceA', function(){...})angular.module('myApp.moduleB', []).factory('serviceA', function(){...})angular.module(
02
2020
06

angular应用常用哪些路由库,各自的区别是什么?

Angular1.x中常用ngRoute和ui.router,还有一种为Angular2设计的new router(面向组件)。后面那个没在实际项目中用过,就不讲了。无论是ngRoute还是ui.router,作为框架额外的附加功能,都必须以 模块依赖 的形式被引入。区别ngRoute模块是Angular自带的路由模块,而ui.router模块是基于ngRoute模块开发的第三方模块。ui.router是基于state(状态)的,ngRoute是基于url的,ui.router模块具有更强大的功
02
2020
06

一个angular应用应当如何良好地分层?

目录结构的划分1、对于小型项目,可以按照文件类型组织,比如:cssJs  {controllersmodelsservicesfilters}templates2、但是对于规模较大的项目,最好按业务模块划分,比如:cssModulesaccountcontrollersmodelsservicesfilterstemplatesdiskcontrollersmodelsservicesfilterstemplatesmodules下最好再有一个common目录来存放公共的东西。3.逻辑
02
2020
06

两个平级界面块a和b,如果a中触发一个事件,有哪些方式能让b知道?详述原理

这个问题换一种说法就是,如何在平级界面模块间进行通信。有两种方法,一种是共用服务,一种是基于事件。(1)共用服务在Angular中,通过factory可以生成一个单例对象,在需要通信的模块a和b中注入这个对象即可。(2)基于事件这个又分两种方式第一种是借助父controller。在子controller中向父controller触发($emit)一个事件,然后在父controller中监听($on)事件,再广播($broadcast)给子controller,这样通过事件携带的参数,实现了数据经
02
2020
06

factory、service和provider是什么关系?

1.factory把service的方法和数据放在一个对象里,并返回这个对象app.factory('FooService', function(){return {target: 'factory',sayHello: function(){return 'hello ' + this.target;}}});2.service通过构造函数方式创建service,返回一个实例化对象app.service('FooService',
02
2020
06

{{now | 'yyyy-MM-dd'}}这种表达式里面,竖线和后面的参数通过什么方式可以自定义?

filter,格式化数据,接收一个输入,按某规则处理,返回处理结果。内置filter1、ng内置的filter有九种:1.date(日期)2.currency(货币)3.limitTo(限制数组或字符串长度)4.orderBy(排序)5.lowercase(小写)6.uppercase(大写)7.number(格式化数字,加上千位分隔符,并接收参数限定小数点位数)8.filter(处理一个数组,过滤出含有某个子串的元素)9.json(格式化json对象)2、filter有两种使用方法,1)是直接
02
2020
06

有哪些措施可以改善Angular性能

1.官方提倡的,关闭debug,$compileProvidermyApp.config(function ($compileProvider) {$compileProvider.debugInfoEnabled(false);});2.使用一次绑定表达式即{{::yourModel}}3.减少watcher数量4.在无限滚动加载中避免使用ng-repeat5.使用性能测试的小工具去挖掘你的angular性能问题,我们可以使用简单的console.time()也可以借助开发者工具以及Batar
02
2020
06

Angular Directive中restrict中分别可以怎样设置?scope中@,=,&有什么区别?

restrict中可以分别设置:A匹配属性E匹配标签C匹配classM 匹配注释当然你可以设置多个值比如AEC,进行多个匹配。在scope中,@,=,&在进行值绑定时分别表示@获取一个设置的字符串,它可以自己设置的也可以使用{{yourModel}}进行绑定的;= 双向绑定,绑定scope上的一些属性;& 用于执行父级scope上的一些表达式,常见我们设置一些需要执行的函数< 进行单向绑定。angular.module('docsIsolationExample&#