.factory("user", userService);
function userService($q, $http) {
function User (){
//....
}
return User;
}
或者
.factory("User", ["$q", "$http", function ($q, $http) {
var User = {
//....
}
return User;
}])
根据情况(或者更确切地说,取决于作者),我经常看到两者,但我已经想知道很长时间了(自从我开始学习 Angular),是什么让它与众不同,以及我是否可以使用一个或另一个不改变任何东西。
我通常使用第一个并遵循逻辑,因为我发现它更容易,并且因为我对第二个感到困惑。我可能犯了错误,但这就是我寻求帮助的原因。
谢谢 !
您问题中的第二个代码片段是我建议您用于所有 angularjs 服务的代码片段。
Angular 框架提供了开箱即用的依赖注入 (DI) 功能,可在定义服务、指令、过滤器、动画等组件或为模块提供运行和配置块时使用。
如果您在 angular 应用程序中定义依赖项而不使用字符串数组,那么您就做错了。这种注册依赖项的方法将非常适合JavaScript源文件的非最小版本。
但是,如果您打算缩小用于生产的文件(每个人都必须这样做),那么所有这些(依赖项)参数都将更改为真正随机的内容,而 angular 将无法映射到任何已注册的组件。所以最终,框架会抛出一个错误。
为了避免这个错误,可以确保始终使用字符串类型的数组来指示依赖项。更详细地阅读本文。如果你是你自己,那么你可以记住这个提示。但是,如果在团队中工作,最好使用以下选项进行配置,以便团队中的每个人都遵循这一点。如果没有,那么他们将遇到错误。
我建议您使用严格的 DI 模式。
如何启用严格模式?可以使用下面提到的两个选项启用此模式。
选项1:
<div ng-app="myApp" ng-strict-di>
<!-- your app here -->
</div>
选项 2:
angular.bootstrap(document, ['myApp'], {
strictDi: true
});
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句