2

我开始学习 angularJS 并发现 yeoman 非常有用。但是一些由 yeoman 生成的控制器/服务/模型不适合以后缩小。因为我通过生成的模板(在这种情况下为服务)看到了什么,我们必须隐式地注入服务。

但是如果我们以后想缩小,建议使用 $inject 显式注入。

所以我的问题是:我所理解的是否正确?如果不是,那么从 yeoman 注入生成的模板的正确方法是什么。

否则,如果我们想稍后进行缩小,我们现在不应该使用 yeoman 生成的模板,对吗?

谢谢

4

2 回答 2

5

所以 yeoman 在生成服务时会给你这样的东西

testApp.factory('Thing', function(dep1, dep2) {
  return {/*...*/};
});

当代码被缩小时这是有问题的,因为缩小的过程会缩短函数参数,而 Angular 使用它们来推断要注入哪些依赖项。

要注入依赖项,我建议使用如下所示的内联注释

testApp.factory('Thing', ['dep1', 'dep2', function(dep1, dep2) {
  return {/*...*/};
}]);

请注意,第二个参数是一个数组,其中列出了正确的依赖项名称,并且它的最后一项是将注入此类依赖项的函数。


编辑:Yeoman 的 Angular 生成器现在支持 JavaScript 和 CoffeeScript 代码--minsafe的缩小,带有 @Ramiro 所示的标志

于 2012-12-07T23:37:41.717 回答
3

您可以将 Yeoman Angular 生成器与 --minsafe 一起使用,例如:

yo angular:controller user --minsafe

在此处查看其他选项: https ://npmjs.org/package/generator-angular

编辑:对此进行跟进。现在不需要使用 --minsafe 标志,因为 yeoman 带有 ngmin 应用程序,它会自动将所有适用的代码转换为可缩小的,然后将其缩小:)

于 2013-02-26T00:09:30.540 回答