javascript - Angular 两次定义参数

标签 javascript angularjs object controller

考虑以下示例。他们的工作方式不同吗?

.controller('MyController',function($scope) {
  $scope.username = 'World';

  $scope.sayHello = function() {
    $scope.greeting = 'Hello ' + $scope.username + '!';
  };
});

对比

.controller('MyController', ['$scope', function($scope) {
  $scope.username = 'World';

  $scope.sayHello = function() {
    $scope.greeting = 'Hello ' + $scope.username + '!';
  };
}]);

他们为我输出相同的内容,我只是不明白为什么我们把它放在那里。有时我不得不把它作为对象来工作。为什么要定义两次?

最佳答案

这是个有趣的问题。答案是两者都在本地环境中按预期工作。但是..

Array notation is useful when you Minify/obfuscate JavaScript files for production release. In that case the argument $scope might be renamed to $s, but because we defined string ‘$scope’ as first argument, Angular is aware that first dependency to this controller is $scope object.

因此,除非您正在编写用于内部目的的东西,否则请使用推荐的数组表示法! :)

引用这个:http://viralpatel.net/blogs/angularjs-controller-tutorial/

关于javascript - Angular 两次定义参数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35006202/

相关文章:

java - 如何将 Text 对象居中到 JavaFX Stage 的正中心?

javascript - 如何使用 JavaScript 检查按钮是否被点击

javascript - flex 文本框

javascript - firebug 可以检测正在进行的 ajax 操作吗?

javascript - Material Angular 无限滚动与 $http 请求

angularjs - 如何从父范围检查包含 ng 的表单的有效性?

javascript - 如何在单独的行上打印对象中的所有键

javascript - 在加载时设置 JavaScript 中多个文本区域元素的高度

javascript - 功能(d)和功能(d,i)之间的区别?

javascript - Angular 指令中的单元测试 $formatters