2016-08-17 2 views
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-файле, если это имеет значение? Весь класс в основном закомментирован, пока я не исправил эту ошибку. – user4648142

+0

Как выглядит ваш тестовый код Jasmine и работает ли он оттуда? –

ответ

0

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

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

+0

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

+1

@ пользователь4648142, хорошо это имеет смысл. Вы подтвердили, что загружается фактический файл контроллера? –

Смежные вопросы