我是角度js的新手。如此不同的角度编码方法让我很困惑。我刚刚找到两种不同的方法来编写角度控制器声明。
angular.module('App', [])
.controller('AppCtrl', function ($scope) {
$scope.model = 0;
$scope.initSlider = function () {
};
});
angular.module('MyApp', []);
function MyCtrl($scope) {
angular.element(document).ready(function () {
document.getElementById('msg').innerHTML = 'Hello';
});
}
只看到控制器声明的第一个代码
.controller('AppCtrl', function ($scope) {
})
但是在第二个中,只是一个函数被声明为控制器
function MyCtrl($scope) { }
告诉我两种不同的方法已经采取声明控制器? 哪一个是正确的,当人们遵循第二种方法,其中控制器字不用于声明控制器。我需要指南来理解2种不同的方法。
答案 0 :(得分:1)
将第二个控制器中的逻辑放在一边。
第一个选项是推荐的选项。
第二个选项首先起作用的唯一原因是出于演示的目的,不应该使用。声明控制器的更多方式在1.3 +中已被弃用。
有关详细信息,请查看:https://docs.angularjs.org/guide/migration。特别是谈论控制器的部分。
从中提取:
$ controller将不再在窗口上查找控制器。查看控制器窗口的旧行为最初打算用于示例,演示和玩具应用程序。我们发现允许全局控制器功能鼓励不良做法,因此我们决定默认禁用此行为。
答案 1 :(得分:0)
你必须遵循
angular
.module('App', [])
.controller('AppCtrl', function ($scope)
{
//you code
};
});
angular
.module('App', [])
.controller('AppCtrl', ['$scope', function ($scope) {
//you code
};
}]);
angular.module('app')
.controller('SomeController', SomeController);
function SomeController($scope) {
//you code
}
我想建议第二种方法,它也适用于缩小的JavaScript。 或者您也可以关注Angular Style Guide。
答案 2 :(得分:0)
在我的企业中,我们正在开发角度,我们使用的风格我觉得它更清晰。
(function() {
'use strict';
function myController(_, $window) {
...
}
//Injections into the controller
myController.$inject = ['lodash', '$window'];
angular.module('myModule').controller('myController', myController);
})();