Мы используем угловую версию 1.5.10 и ui-router версию 0.3.1.Мы составляем компонент нашего контроллера и сервисов.
Когда мы пытаемся открыть модальное всплывающее окно, используя метод $uibModal.open
.Это открытие шаблона компонента в модальном всплывающем окне.Но он не показывает какие-либо данные, переданные в контроллер, открытый в модальном режиме, используя resolve
Project Компонент, из которого мы должны вызвать, выглядит следующим образом -
import * as angular from 'angular';
export let ProjectComponent = {
selector: 'ProjectDetails',
templateUrl: 'app/entities/project-details/project-details.html',
bindings: {},
controller: ProjectController,
controllerAs: 'vm'
};
ProjectController.$inject = ['project', '$http', '$scope', '$filter', '$uibModal', 'Record'];
function ProjectController(project, $http, $scope, $filter, $uibModal, Record) {
var vm = this;
var modalInstance = $uibModal.open({
template: '<project-task-details $resolve="$resolve" ></project-task-details>',
backdrop: 'static',
windowClass: 'viewerModal style-1',
size: 'lg',
resolve: {
data: function() {
return project.getTaskDetails({
projectId: projectId
});
}
}
});
}
angular
.module('projectApp')
.component(ProjectComponent.selector, ProjectComponent);
ProjectСлужба, которая используется из этого компонента проекта -
import * as angular from 'angular';
class project {
constructor($http) {
this.$http = $http;
}
getTaskDetails(params) {
return this.$http.get('api/project' + '/' + params.projectId).success((response) => response.data);
}
}
angular
.module('projectApp')
.service('project', project);
project.$inject = ['$http'];
export default project;
Теперь содержимое страницы, которую мы пытаемся загрузить, например, ProjectTaskDetailComponent: -
import angular from 'angular';
export let ProjectTaskDetailComponent = {
selector: "projectTaskDetails",
templateUrl: 'app/entities/project-details/project-task-details.html',
bindings: {
// modalInstance: '<',
data: '<'
},
controller: ProjectTaskDetailController,
controllerAs: 'vm'
};
ProjectTaskDetailController.$inject = [];
function ProjectTaskDetailController() {
var vm = this;
vm.$onInit = function() {
vm.projectDetail = this.data;
}
// vm.projectDetail = data;
vm.clear = clear;
setTimeout(function() {
$('#loadingImg').css('display', 'none');
}, 1000);
function clear() {
// $uibModalInstance.dismiss('cancel');
}
}
angular
.module('projectApp')
.component(ProjectTaskDetailComponent.selector, ProjectTaskDetailComponent);
Я пытался открыть модальное всплывающее окно, котороеоткрыт без данных.Когда мы отлаживаем код, данные в привязках не определены в ProjectTaskdetailComponent, когда в шаблоне мы передаем как data = "$resolve.data"
.Если мы используем $resolve = "$resolve"
в шаблоне, данные все еще не определены, пока мы проверяем в ProjectTaskdetailComponent.
Также пробовал все привязки, такие как data: "<", data: "=", data: "@"
, но сохраняется та же проблема, то есть данные не определены.
Также пытался обновить angular-ui-router до версии 0.4.2, но он все равно не работал.