Каковы различия между двумя способами написания кода ниже с точки зрения функциональности?
Я придерживаюсь стиля написания кода.
Я попытался в своем коде, но вторая форма нарушила код, я воздержался от публикации всего кода, чтобы сосредоточиться на основной части. благодаря
var myApp = angular.module('MainMenuCtrl', ['ngAnimate']);
myApp.controller('MainMenuCtrl', ['$scope', '$http', MainMenu]);
angular
.module('MainMenuCtrl', ['ngAnimate'])
.controller('MainMenuCtrl', ['$scope', '$http', MainMenu]);
Второй подход более модульный, так как вы можете захватить его часть и сразу же включить его в другой проект, не зная, соответствует ли переменная app
, которая является глобальной, проекту, в который вы его вставляете.
Также вы можете обернуть все компоненты в IIFE и включить "использовать строгую", не заставляя его на каких-либо других скриптах на странице.
Кроме того, для создания и создания строительных лесов нет необходимости устанавливать какие-либо переменные
// in one file
;(function(){
"use strict";
// var app wouldn't be available in the next file if it was used here
angular
.module('MainMenuCtrl', ['ngAnimate'])
.controller('MainMenuCtrl', ['$scope', '$http', MainMenu]);
)}();
// in another file
;(function(){
"use strict";
angular
.module('MainMenuCtrl')
.controller('AnotherCtrl', ['$scope', '$http',AnotherCtrl]);
)}();
myApp
. Смысл использования второй формы заключается в том, что переменная не является строго необходимой, и при условии, что она имеет обратную сторону возможных коллизий именования, но не имеет дополнительных преимуществ.MainMenu
и убедитесь, что$scope
является первым аргументом, а$http
- вторым аргументом. Любой другой заказ нарушит ваш код.