저는 modal을 구성 요소로 정의하고 uiModal.open을 사용하여 해당 모달을 여는 간단한 사례가 있습니다. 그러나 컨트롤러 생성자의 열린 메서드 및 인수에서 "해결"을 사용하여 해당 사용자 지정 데이터를 해당 모달에 전달하려는 경우 데이터가 전달되지 않습니다. 또한 $ uibModalInstance를 삽입하려고하면 알 수없는 공급자 ($ uibModalInstanceProvider < - $ uibModalInstance)로 실패하므로 모달을 닫는 동안 결과를 반환 할 수 없습니다.구성 요소를 사용하여 각도 UI 부트 스트랩 모달에서 인수를 전달하고 검색하는 방법
템플릿 :
<div class="modal-header">
<h3 class="modal-title" id="modal-title">Modal</h3>
</div>
<div class="modal-body" id="modal-body">
Some text
<div class="row">
<div class="col-sm-10">
<textarea class="form-control" name="closureNotes" rows="6" data-ng-model="vm.closureNote" required>
</textarea>
</div>
</div>
</div>
<div class="modal-footer">
<button class="btn btn-default btn-close" type="submit" ng-click="vm.ok()">Close Exception Request</button>
<button class="btn btn-danger" type="button" ng-click="vm.cancel()">Cancel</button>
</div>
구성 요소 :
import template from './closeExceptionModal.html';
import controller from './closeExceptionModal.controller';
let closeExceptionModalComponent = {
restrict: 'E',
bindings: {
resolve: '<',
close: '&',
dismiss: '&'
},
template,
controller,
controllerAs: 'vm'
};
export default closeExceptionModalComponent;
컨트롤러 :
class CloseExceptionModalController {
constructor() {
//I need to retrieve here some data from caller
}
ok() {
this.close(); //I need to pass here result to caller using modalInstance.close
}
cancel() {
this.dismiss();
}
}
export default CloseExceptionModalController;
발신자 컨트롤러 코드 :
//I need to pass some data to modal
let modalInstance = this.$uibModal.open({
animation: true,
component: 'closeExceptionModal',
appendTo: angular.element(document.body),
})
modalInstance.result.then((result) => {
alert(result); //this must be result data from modal
},() => {
});