Задать вопрос

Как понять данную запись в Angular?

Всем доброго времени суток. Установил себе тему написанную в том числе и на AngularJS.
При разборе темы возникли пара вопросов. Вот оригинальный код одного из контроллеров.

(function() {
    'use strict';
    angular.module('staff.controller', []).controller('StaffCtrl', [
        '$scope', '$filter', function($scope, $filter) {
            var init;
            $scope.stores = [
                {
                    name: 'Nijiya Market',
                    price: '$$',
                    sales: 292,
                    rating: 4.0
                },  ... {
                    name: 'House of Bagels',
                    price: '$',
                    sales: 82,
                    rating: 4.4
                }
            ];
            $scope.searchKeywords = '';
            $scope.filteredStores = [];
            $scope.row = '';
            $scope.select = function(page) {
                var end, start;
                start = (page - 1) * $scope.numPerPage;
                end = start + $scope.numPerPage;
                return $scope.currentPageStores = $scope.filteredStores.slice(start, end);
            };
            $scope.onFilterChange = function() {
                $scope.select(1);
                $scope.currentPage = 1;
                return $scope.row = '';
            };
            $scope.onNumPerPageChange = function() {
                $scope.select(1);
                return $scope.currentPage = 1;
            };
            $scope.onOrderChange = function() {
                $scope.select(1);
                return $scope.currentPage = 1;
            };
            $scope.search = function() {
                $scope.filteredStores = $filter('filter')($scope.stores, $scope.searchKeywords);
                return $scope.onFilterChange();
            };
            $scope.order = function(rowName) {
                if ($scope.row === rowName) {
                    return;
                }
                $scope.row = rowName;
                $scope.filteredStores = $filter('orderBy')($scope.stores, rowName);
                return $scope.onOrderChange();
            };
            $scope.numPerPageOpt = [3, 5, 10, 20];
            $scope.numPerPage = $scope.numPerPageOpt[2];
            $scope.currentPage = 1;
            $scope.currentPageStores = [];
            init = function() {
                $scope.search();
                return $scope.select($scope.currentPage);
            };
             return init();
        }
    ]);

}).call(this);


Впервые встречаю запись return init(); В котролере. Теоретически понимаю зачем это, и как это. НО вот даже сам себе объяснить не могу. Потому как замена return init() на простой init() без return - все работает так же. Зачем тут return.
  • Вопрос задан
  • 2341 просмотр
Подписаться 1 Оценить Комментировать
Пригласить эксперта
Ответы на вопрос 2
Fesor
@Fesor
Full-stack developer (Symfony, Angular)
Говнокод и все. Не парьтесь. Автор этого кода слишком много писал на jQuery.
Ответ написан
Комментировать
5angel
@5angel
Фронтенд-лид
Работаю с Angular уже несколько лет, но настолько же заинтригован мотивацией автора данного кода.

Впрочем, одна догадка есть. Судя по всему, он очень любит, когда функции возвращают значение (заметьте, КАЖДАЯ функция что-либо возвращает, даже если это совершенно не нужно), поэтому логично, что и init, и сама функция контроллера должна что-то вернуть.

В целом же, организация кода в данном контроллере оставляет желать лучшего.
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы