Я хотел бы использовать модальный интерфейс ui-bootsrap с Генератор полного стека AngularJS и ES6, но это не работает. Я хотел бы выбрать проект, нажать «Изменить» и отредактировать проект в большом модальном окне. Но у меня не открывается модальное окно.
В консоли я получаю это сообщение об ошибке:
"Error: $modal is not defined"
Мой контроллер проекта выглядит следующим образом:
'use strict';
(function() {
class ProjectCtrl {
constructor(Project, $modal, $log) {
this.project = Project;
this.projects = [];
this.getAllProjects(Project);
this.$modal = $modal;
this.log = $log;
}
// Open a modal window to Update a single Project
modalUpdate(size, selectedProject) {
var modalInstance = $modal.open({
templateUrl: 'app/project/project-edit.modal.html',
controller: function ($scope, modalInstance, aProject) {
$scope.project = aProject;
},
size: size,
resolve: {
aProject: function () {
return selectedProject;
}
}
});
modalInstance.result.then(function (selectedItem) {
this.selected = selectedItem;
}, function () {
$log.info('Modal dismissed at: ' + new Date());
});
};
}
angular.module('projectApp')
.controller('ProjectCtrl', ProjectCtrl);
})();
app.js выглядит следующим образом:
'use strict';
angular.module('projectApp', [
'projectApp.constants',
'ngCookies',
'ngResource',
'ngSanitize',
'ui.router',
'ui.bootstrap'
])
.config(function($urlRouterProvider, $locationProvider) {
$urlRouterProvider
.otherwise('/');
$locationProvider.html5Mode(true);
});
Кнопка для открытия модального окна:
<button type="button" class="btn btn-default btn-xs pull-right" ng-click="ProjectCtrl.modalUpdate('lg', project)"><span aria-hidden="false"></span> Edit</button>
Я предполагаю, что в ProjectCtrl мне нужно каким-то образом $inject ‘Project’, ‘$modal’ и ‘$log’, но я не знаю, как и где.