AngularJS: Controller /服务应该是帕斯卡案例? (在 yeoman 中使用 Yo)

标签 angularjs yeoman

我已经开始使用 Yo (yeoman) 为 angularjs 搭建我的 Controller 、服务等。

我通常做一个

  yo angular:service passwordService

我使用的是驼峰式大小写,因为这是它创建的文件的名称,但我注意到它也使用相同的名称作为服务的名称,所以
passwordService

而不是
PasswordService

这里有哪些最佳实践?

谢谢

最佳答案

值得注意的是,在 Developer Guide在许多地方(包括链接到“服务”部分),AngularJS 开发人员使用驼峰+第一个小写来表示服务名称和其他内容。所以也许你会认为这是 AngularJS 的最佳实践。

也就是说,我认为在其他语言中,更常见的是用驼峰命名 + 首先 来命名服务和类。大写 实际上,正如在 JavaScript 中所证明的那样,这似乎特别重要。假设您有一个名为 user 的类——那么你会怎样称呼一个包含 user 实例的变量? ?你不能叫它user没有非常尴尬/容易出错的阴影。

在 AngularJS 中,您的 $resource services 最终将成为“旧的”OO JavaScript 中的类。看:

angular.module('Foo', [], function() {}).factory('User', function() {
  var User = $resource('/api/user');

  User.prototype.getFullName = function() {
    return this.firstName + ' ' + this.lastName;
  };

  return User;
});

看看我要去哪里?您最终将注入(inject)您的新 User $resource并实例化它:
function MyController($scope, User) {
  var someNewUser = new User();
};

或者你会想要使用一个简单的变量名来迭代多个用户,比如 user。对于当前项目:
angular.forEach(someUsers, function(user) {
  // Good thing you didn't name your $resource "user"!
  // Weird/undesirable shadowing would result here then...
});

如果您需要更多说明,请告诉我为什么我认为最佳实践是第一位的 大写 给定 JavaScript 上下文的类/服务名称。 (相比之下,考虑到 PHP 中的 var 名称以 $ 为前缀,因此在 var 名称和类名称之间不会发生阴影。$User = new User() 非常好。)

当然,你可以做 User = new user()在 JS 中,但这与现有语言/样式指南的标准正好相反。

关于AngularJS: Controller /服务应该是帕斯卡案例? (在 yeoman 中使用 Yo),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17168021/

相关文章:

ruby-on-rails - rails erb 中的 Angular Js 花括号

javascript - yeoman webapp 中的 Babel

sass - compass 不适用于 Mithril 自耕农发电机

ruby-on-rails - 自耕农应用程序中的 Grunt 任务很慢

c# - 无法从 AngularJS 将简单的字符串数据发布到 Web API

javascript - 如何删除 AngularJS 中选择列表的第一个索引处出现的不需要的空项目?

javascript - 如何等待 Protractor 中的按钮禁用状态?

javascript - Bootstrap 3 Accordion 菜单 : Stop the panel open from also opening the page

npm - 为什么我的 Yeoman 发电机安装在错误的位置?

angularjs - 谷歌地图错误 - 未捕获的 ReferenceError : google is not defined - yeoman