AngularJS 中的一些坑无标题文章

一、UI 闪烁问题

众所周知,Angular 最大的亮点就是数据的双向绑定。然而,在项目的实际使用过程中,往往会碰到页面闪现出没有被解析的表达式(形如 {{ app.name }} )。

是因为:

在 Angular 初始化之前,DOM 还没准备就绪,Angular 正在计算并替换相应的值。

解决办法:

1、放弃使用{{ }}表达式,改用ng-bind指令;

2、在元素上添加 “ng-clock”,工作原理就是在初始化阶段 inject 了 css 规则,或者你可以包含这个 css 隐藏规则到你自己的 stylesheet。Angular 就绪后就会移除这个 cloak 样式,让我们的应用(或者元素)立刻渲染。

二、别忘写 $

在Angular中有一个通用的约定:Angular的内部服务、方法、属性通常都会以 $ 开头,而相应的,它也要求你自己的命名不要用 $ 开头。比较容易忘记用 $ 开头的主要是一些方法,特别是 $apply, $watch, $on, $broardcast, $emit 这些。

如果写错了,在 chrome 中你将得到一个莫名其妙的提示TypeError: undefined is not a function!连函数名字都没有!所以,千万不要忘了写 $!

三、ng-include 指令

错在哪里?

如果你这么写过,会发现这个位置啥也没有加载出来,那么,错在哪里呢?

错在 ng-include 需要的是一个变量

如果你在 $scope 中有这样一个变量$scope.userShowTemplateUrl = "views/users/show.html",并且把上面这句变为

就能正常工作了。

四、ng-click 写成 ng-class 导致的界面停止响应


这个问题属于深度依赖 ide导致的。 ide的自动代码提示功能,ng-cl 的第一个候选项是 ng-class,如果偷懒少打了一个字,那么本来想写 ng-click 的代码就会写成 ng-class,结果就是,无休止的重新计算 ng-class 中的表达式。

如果遇到界面停止响应的问题,而且你也同样深度依赖ide,那从这个角度查查看吧。

你可能感兴趣的:(AngularJS 中的一些坑无标题文章)