angular.module的两种写法

angular.module('name', [])angular.module('name') 虽然看起来很相似,但是!它们的含义却是截然不同的!

angular.module('name', [])是创建一个新的module,[]表示它没有依赖任何其他模块,如果已经有了一个同名模块,则会覆盖现有的。

angular.module('name')是查找一个现有module,如果这个module不存在,则返回空值。

如果把带方括号的形式(创建)误用为不带方括号的形式(引用),那么在它的返回值上调用controller等函数会出现空指针错误。

而如果把引用形式误用为创建形式,则会导致难以理解的“对象不存在”错误,但是你却明明定义过那个service或者controller等对象!这种问题就是因为后面的模块定义覆盖了以前的模块定义,你定义过的那些对象都被随着以前的module而丢掉了!

from: http://www.ngnice.com/posts/2c8208220edb94

angular初探 ng-init

ng-init

1. 这个指令可以在模板中直接赋值,它作用于 angular.bootstrap 之前,并且,定义的变量与 $scope 作用域无关。

2. 指令中的参数在事件中, 可以被获取到, 但不能直接在控制器中获取到

function ctrl ($scope) {
    console.log($scope.demo); // undefined

    $scope.demoClick = function () {
        console.log($scope.demo); // 风一样的男子
    };
}

3. 虽然不能直接被获取到, 但是可以在view中直接使用

angularJs 获取焦点与失去焦点表单验证

其实一开始产品这样说的时候我是拒绝的, 用这样太复杂了,
直接用当前流行的, 实时验证不行嘛?
For Example:


*格式错误

但是产品大大说, 当时我还在输入你就判断错误, 是否言之过早.
肯定是失去焦点以后你再提示我错误信息.

所以我就根据产品大大的意志修改了一下,
如下:


*格式错误