Javascript AngularJS-模块的控制器附件
刚开始和angularJS打交道。我注意到有几种方法可以创建控制器,一种是只声明js函数的方法,另一种是通过模块创建控制器 关键区别是什么 i、 e 对Javascript AngularJS-模块的控制器附件,javascript,angularjs,Javascript,Angularjs,刚开始和angularJS打交道。我注意到有几种方法可以创建控制器,一种是只声明js函数的方法,另一种是通过模块创建控制器 关键区别是什么 i、 e 对 var myApp = angular.module('myApp',[]); myApp.controller('GreetingController', ['$scope', function($scope) { $scope.greeting = 'Hola!'; }]); 使用第一种方法,可以跨具有不同作用域的模块重用控制器吗
var myApp = angular.module('myApp',[]);
myApp.controller('GreetingController', ['$scope', function($scope) {
$scope.greeting = 'Hola!';
}]);
使用第一种方法,可以跨具有不同作用域的模块重用控制器吗
非常感谢
问候
我来自文件:
虽然Angular允许您在
全局范围,不建议这样做
关键的区别在于,您永远不会使用第一个;)至于重用:您可以将这两种方法结合起来:
function GreetingController($scope) {
$scope.greeting = 'Hola!';
}
var myApp = angular.module('myApp',[]);
myApp.controller('GreetingController', ['$scope', GreetingController]);
谢谢,那么您仍然在创建具有全局范围的控制器?为什么第一个魔咒如此糟糕?试图理解差异,还是只是重复使用?@user1754307不完全如此。本质上,这是第二种方法,其中函数声明被删除。这使得它可以重复使用。当你缩小你的代码时,第一个开始变得一团糟。它不会再工作了。这不是组合解决方案的问题。
function GreetingController($scope) {
$scope.greeting = 'Hola!';
}
var myApp = angular.module('myApp',[]);
myApp.controller('GreetingController', ['$scope', GreetingController]);