Angularjs передача аргументов в uibmodal - PullRequest
0 голосов
/ 17 марта 2020

создание

           let modalInstance = this.$uibModal.open({
                templateUrl: 'showTemplateContent.html',
                controller: 'ShowTemplateContentController',
                controllerAs: 'modal',
                resolve: {
                    hoveredItem: () => {
                        return hoveredItem;
                    }
                }
            });

шаблон

<div>
    <div class="modal-header" ng-mouseleave="close()">
        title:
        <h3 class="modal-title"> {{hoveredItem.templateName}} </h3>
    </div>
    <div class="modal-body">
        content:
        {{hoveredItem.content}}
    </div>
</div>

контроллер

namespace app.view.modal {

export interface IShowTemplateContentController{
    modal: ShowTemplateContentController
    $resolve: any
    hoveredItem: any
}

export class ShowTemplateContentController {
    constructor(private $scope: IShowTemplateContentController,
                private $uibModalInstance,
    ) {
        this.$scope.modal = this;
        console.log(this.$scope.hoveredItem);
        this.init()
    }

    init() {
        this.$scope.hoveredItem = this.$scope.$resolve.hoveredItem;
    }

    close(reason: string) {
        this.$uibModalInstance.dismiss(reason);
    };
}
}

Модал отображается только с содержимым и идентификатором без отображения содержимого внутри интерполяции. Также это не печатает hoveredItem в консоли. Я не знаком с этим синтаксисом angularjs. Как я могу использовать hoveredItem в моем шаблоне и контроллере? Спасибо

1 Ответ

0 голосов
/ 17 марта 2020

Когда вы передаете hoveredItem в разрешение, вам нужно ввести его в модальный контроллер:

constructor(hoveredItem, private $uibModalInstance) {

    console.log(hoveredItem);
}

Вы также использовали:

controllerAs: 'modal',

Итак, в html использовать модал как ссылку на контроллер:

<div class="modal-body">
    content:
    {{ modal.hoveredItem.content }}
</div>
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...