AngularJS监听计数

大家都知道,AngularJS双向数据绑定很Cool。简单地说,Angular在scope模型上设置了一个监听队列,用来监听数据变化并更新view 。每次绑定一个东西到View上时AngularJS就会往$watch队列里插入一条$watch,用来检测它监听的model里是否有变化的东西。当浏览器接收到可以被Angular执行环境处理的事件时,就会触发$digest循环,遍历所有的$watch,model稳定后结束循环。大多数时候,浏览器速度很快这个过程不长,这不是一个大问题。但如果在很复杂的应用下使用不当会造成性能问题,比如说表格树组件中滥用双向数据绑定很容易造成界面很卡。 继续阅读“AngularJS监听计数”

使用ocLazyLoad实现AngularJS模块按需懒加载

复杂的AngularJS SPA项目需要用路由来管理各个产品模块之间的切换。各个模块的代码如何引入?通常我们的简单做法是在首页将各个模块的代码全部引入,即使首页本身很简单也需要加载很多无用的代码。这样 一来会造成首屏加载时间过长。怎么做到首屏只引入需要显示的必要代码,而在必要的时候再去加载各个模块的代码,做到按需懒加载呢? 继续阅读“使用ocLazyLoad实现AngularJS模块按需懒加载”

使用navbar和ui-router动态加载外部模板

使用AngularJS material navbar(导航栏组件)可以动态加载外部模板吗?看了AngularJS material官网的Demo,觉得还是没有交行清楚,导航栏的数据也是写死的。当然这对入门知识点很有用,不过对于实际项目,帮助就不大了。首先导航栏应该基于数据驱动来渲染,而且点击导航项时应该从动态加载外部模板。基于此,我们对md-nav-bar进行了扩展。 继续阅读“使用navbar和ui-router动态加载外部模板”