angularjs中,带个[]是什么意思?

app.factory('Notes', ['$resource', function($resource) {
    return $resource('/notes/:id', null, {
        update: { method:'PUT' }
    }); 
}]);

貌似上面这种写法跟下面这种没差别。请问有什么差别??

app.factory('Notes', function($resource) {
    return $resource('/notes/:id', null, {
        update: { method:'PUT' }
    }); 
});
阅读 4.6k
2 个回答

这个叫inline array annotation,目的是在代码被uglify之后仍然可用。

你可以试试,如果不通过[]处理,压缩下代码,肯定运行不起来了。

具体参考Dependency Injection

没有差别,但是最好用第一种写法。因为第二种是直接根据形参注入的,如果代码压缩了,$resource压缩成其它的,就报错了。

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进