что лучше для `mainApp.config (['$ routeProvider', function ($ routeProvider)` и `mainApp.config (function ($ routeProvider)`)

0

Я только начал изучать angularJS, но я могу заметить то же самое так много времени, что в некоторых местах, когда мы начинаем писать функцию в angularJS, я заметил, что некоторые люди определяют функцию, которую они будут использовать, как это

var mainApp = angular.module("mainApp", ['ngRoute']);
     mainApp.config(['$routeProvider', function($routeProvider) {
        $routeProvider.

        when('/addStudent', {
           templateUrl: 'addStudent.htm',
           controller: 'AddStudentController'
        }).

        when('/viewStudents', {
           templateUrl: 'viewStudents.htm',
           controller: 'ViewStudentsController'
        }).

        otherwise({
           redirectTo: '/addStudent'
        });
     }]);

Но ['$routeProvider' и та же функция работает нормально, если мы просто напишем функцию без этого ['$routeProvider' как это

var mainApp = angular.module("mainApp", ['ngRoute']);
     mainApp.config(function($routeProvider) {
        $routeProvider.

        when('/addStudent', {
           templateUrl: 'addStudent.htm',
           controller: 'AddStudentController'
        }).

        when('/viewStudents', {
           templateUrl: 'viewStudents.htm',
           controller: 'ViewStudentsController'
        }).

        otherwise({
           redirectTo: '/addStudent'
        });
     });

Я знаю, что нет большой разницы при приходе к написанию кода, но все же есть какая-то разница в обоих способах. Если да, то это о минимизации? и есть ли какой-либо отрицательный момент, другой, чем его использование?

Заранее спасибо!

  • 1
    Возможный дубликат Почему мы вводим наши зависимости два раза в angularjs?
  • 3
    mainApp.config(['$routeProvider', function($routeProvider) { минимально безопасен, т. е. если вы минимизируете файлы, он все равно будет работать. Тогда как mainApp.config(function($routeProvider) { не будет).
Теги:
function

1 ответ

1
Лучший ответ
mainApp.config(['$routeProvider', function($routeProvider) {
}]);

Этот тип определяет запрограммированный контроллер Inline Array Annotation. И это минимально безопасно. min-safe означает, что если вы уменьшите свой код, он все равно будет работать.

mainApp.config(function($routeProvider) {
});

Этот тип определения контроллера называется "Неявная аннотация". И это не минимально безопасно. min-safe означает, что если вы уменьшите свой код, это не сработает.

И еще один способ объявить контроллер $inject Property Annotation

var MyController = function($scope, greeter) {
  // ...
}
MyController.$inject = ['$scope', 'greeter'];
someModule.controller('MyController', MyController);

прочитать больше информации нажмите здесь

  • 0
    Третий способ, который вы предоставили, является минимально безопасным ??
  • 0
    да для получения более подробной информации читайте эту docs.angularjs.org/guide/di

Ещё вопросы

Сообщество Overcoder
Наверх
Меню