angular.module('name', [])是創(chuàng)建一個(gè)新的module,[]表示它沒有依賴任何其他模塊,如果已經(jīng)有了一個(gè)同名模塊,則會覆蓋現(xiàn)有的。 而angular.module('name')是查找一個(gè)現(xiàn)有module,如果這個(gè)module不存在,則返回空值。 如果把帶方括號的形式(創(chuàng)建)誤用為不帶方括號的形式(引用),那么在它的返回值上調(diào)用controller等函數(shù)會出現(xiàn)空指針錯誤。 而如果把引用形式誤用為創(chuàng)建形式,則會導(dǎo)致難以理解的“對象不存在”錯誤,但是你卻明明定義過那個(gè)service或者controller等對象!這種問題就是因?yàn)楹竺娴哪K定義覆蓋了以前的模塊定義,你定義過的那些對象都被隨著以前的module而丟掉了!