Контроллер не считается функцией

0

У меня в этом проекте много разных контроллеров, и все они объявлены одинаково. Теперь этот вопрос не вызвал/не дал ошибку, и я не знаю, почему. Я просмотрел его, и все выглядит правильно для меня.

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

Я убедился, что это не так, что имя app.js изменилось и искал отсутствующий синтаксис, но ничего не может найти.

https://docs.angularjs.org/error/ng/areq?p0=companyDepartmentController&p1=not%20a%20function,%20got%20undefined

Компания-отдел-controller.js

app.controller('companyDepartmentController', ['$scope', '$timeout', 'companyService', function ($scope, $timeout, companyService) {

    /**
    * Create/Manage Company Departments & Shifts
    *
    */

    // INITIALIZE VARIABLES *********************************************************************************

    var vm = this;
    vm.Departments = [];
    vm.activeDepartment = {}
    vm.departmentBeforeEdit = {};
    vm.activeShift = {};

    vm.OffsetString = "";

    vm.SaveDepartmentSuccessMessage = null;
    vm.SaveDepartmentErrorMessage = null;

    // STARTUP **********************************************************************************************

    (vm.GetDepartments = function () {
        companyService.GetDepartmentsWithShiftInformation().success(function (data) {
            console.log('hi');
            for (i = 0; i < data.length; i++) {
                console.log(data[i])
            }
            vm.Departments = data;
            // for now we are limiting this to 1
            vm.activeDepartment = vm.Departments[0];
            vm.setTimeZoneOffsets(vm.activeDepartment);
        });
    })();

    // move to global location?  handle this better?
    (vm.findLocalOffsetString = function () {
        console.log('hi1');
        vm.OffsetString = moment(new Date()).format('ZZ');
    })();

    // $BROADCAST/$ON EVENTS ********************************************************************************



    // EVENTS ***********************************************************************************************

    vm.saveDepartment = function (department) {
        // new
        if (department.DepartmentID === 0 || typeof department.DepartmentID === 'undefined') {

        }
        // update
        else {
            companyService.UpdateDepartmentHeader(department).success(function (data) {
                vm.SaveDepartmentSuccessMessage = "Saved!";
                resetDepartmentMessage();
                department.InEdit = false
            });
        }
    };

    vm.editDepartment = function (department) {
        vm.activeDepartment = department;
        vm.departmentBeforeEdit = angular.copy(vm.activeDepartment);
        vm.activeDepartment.InEdit = true;
    };

    vm.cancelDepartmentEdit = function (department) {
        for (var i = 0; i < vm.Departments.length; i++) {
            if (department.DepartmentID === vm.Departments[i].DepartmentID) {
                vm.Departments[i] = vm.departmentBeforeEdit;
                vm.departmentBeforeEdit = {};
                vm.activeDepartment = vm.Departments[i];
                break;
            };
        };
    };

    vm.addShift = function () {
        if (!vm.activeDepartment) return;

        vm.activeShift = {
            DepartmentID: vm.activeDepartment.DepartmentID,
            StartTime: new Date(),
            LocalStartTime: new Date(new Date() + vm.OffsetString)
        };

        vm.activeShift.StartTime.setSeconds(0);
        vm.activeShift.LocalStartTime.setSeconds(0);
    };

    vm.deleteShift = function (shift) {
        if (!shift) return;
        if (confirm("Are you sure you want to delete the shift: " + shift.Name + "?")) {
            companyService.DeleteShift(shift).success(function () {
                angular.forEach(vm.activeDepartment.Shifts, function (c, i) {
                    if (c.ShiftID === shift.ShiftID) {
                        vm.activeDepartment.Shifts.splice(i, 1);
                    };
                });
            });
        };
    };

    vm.setTimeZoneOffsets = function (department) {
        if (!department || !department.Shifts || department.Shifts.length === 0) return;

        for (var i = 0; i < department.Shifts.length; i++) {
            department.Shifts[i].LocalStartTime = new Date(department.Shifts[i].StartTime + vm.OffsetString);
            department.Shifts[i].EndTime = moment(department.Shifts[i].StartTime).add(department.Shifts[i].Duration, 'hours').toDate()
        };
    };

    var fixTimezoneOnSave = function (shift) {
        shift.StartTime = new Date(shift.LocalStartTime).toLocaleString();
    };

    vm.setActiveShift = function (shift) {
        if (!shift) return;
        vm.activeShift = angular.copy(shift);
    };

    vm.saveShift = function (shift) {
        fixTimezoneOnSave(shift);
        // new shift
        if (shift.ShiftID === 0 || typeof shift.ShiftID === 'undefined') {
            companyService.AddShift(shift).success(function (data) {
                shift.ShiftID = data;
                vm.SaveDepartmentSuccessMessage = "Saved!";
                resetDepartmentMessage();
                getUpdatedShiftsAndInfo();
            }).error(function (e) {
                vm.SaveDepartmentErrorMessage = e.error;
                resetDepartmentMessage();
            });
        }
        // updating existing
        else {
            companyService.UpdateShift(shift).success(function (data) {
                vm.SaveDepartmentSuccessMessage = "Saved!";
                resetDepartmentMessage();
                getUpdatedShiftsAndInfo();
            }).error(function (e) {
                vm.SaveDepartmentErrorMessage = e.error;
                resetDepartmentMessage();
            });
        }
    }

    var getUpdatedShiftsAndInfo = function () {
        companyService.DepartmentAndShiftInformation(vm.activeDepartment.DepartmentID).success(function (data) {
            vm.activeDepartment.DepartmentShiftInformation = data.DepartmentShiftInformation;
            vm.activeDepartment.Shifts = data.Shifts;
            vm.setTimeZoneOffsets(vm.activeDepartment);
        });
    };

    var resetDepartmentMessage = function () {
        // clear error/success message if they have values still
        if (vm.SaveDepartmentSuccessMessage != null) {
            $timeout(function () { vm.SaveDepartmentSuccessMessage = null; }, 2000);
        }
        if (vm.SaveDepartmentErrorMessage != null) {
            $timeout(function () { vm.SaveDepartmentErrorMessage = null; }, 2000);
        }
    };

    // create controller object in console if we have logging turned on
    if (spectrum.LoggingEnabled) {
        spectrum.logController(vm);
    };

}]);

_CompanyDepartment.cshtml

<div class="container-fluid" data-ng-controller="companyDepartmentController as cd">
</div>

@section scripts {
    @Scripts.Render("~/bundles/companyDepartments")
    @Scripts.Render("~/bundles/jquery")
    @Scripts.Render("~/bundles/angularjs")
}

app.js

var app = angular.module('app', ['angularFileUpload', 'ngSanitize', 'ui.mask', 'ui.select', 'ui.bootstrap', 'ui.bootstrap.tpls', 'angular.filter', 'smart-table', 'colorpicker.module'])
    .config(function ($httpProvider) {
        //make delete type json to facilitate passing object
        //to our generic method.
        $httpProvider.defaults.headers["delete"] = {
            'Content-Type': 'application/json;charset=utf-8'
        };
    });
  • 0
    Самое первое, что я могу сказать, это то, что @Scripts.Render("~/bundles/companyDepartments") должен загружаться последним. хотя удивительная ошибка должна отличаться от той, что у вас сейчас
  • 0
    В других моих html-файлах он всегда загружается первым. Но я положу это внизу. У меня есть много закомментированного кода в моем HTML-файле, если это будет иметь значение? Весь класс в основном закомментирован, пока я не исправлю эту ошибку.
Показать ещё 3 комментария
Теги:
controller

1 ответ

0

Вне проблемы с именами с контроллером (который я не вижу), я бы предположил, что ваша проблема, связанная с отсутствием загрузки контроллера company-department-controller.js.

Создавая свой угловой проект, я предлагаю вам следовать этому угловому стилю. Это было очень полезно для создания хорошо структурированного проекта.

  • 0
    Моя проблема заключается в том, что я только что вошел в эту кодовую базу и все еще являюсь младшим программистом, поэтому мне было бы трудно / отнимать много времени, чтобы переделать большие части базы кода. И у нас нет старших по этому проекту.
  • 1
    @ user4648142, хорошо, это имеет смысл. Вы подтвердили, что загружается фактический файл контроллера?

Ещё вопросы

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