서비스에서 약속을 수락 할 때 모달을 닫으려고합니다. 알아낼 수 없습니다. '정의되지 않은 속성 값을 읽을 수 없습니다.'라는 메시지가 나타납니다. 에 .. plunker에 대한Modular 컨트롤러 외부 모달 무시
변경 코드, 난 당신이 오류
CHECK 콘솔을 볼 수 있으며, angular.iu 사이트에서이 plunker을했다, 그리고 해고 라인을 추가
서비스에서 약속을 수락 할 때 모달을 닫으려고합니다. 알아낼 수 없습니다. '정의되지 않은 속성 값을 읽을 수 없습니다.'라는 메시지가 나타납니다. 에 .. plunker에 대한Modular 컨트롤러 외부 모달 무시
변경 코드, 난 당신이 오류
CHECK 콘솔을 볼 수 있으며, angular.iu 사이트에서이 plunker을했다, 그리고 해고 라인을 추가
dismiss()
을 호출 할 수 없습니다. 모달이 완전히 인스턴스화되어 열릴 때까지 모달 인스턴스에서. 보고있는 오류는 ui-bootstrap 내부에서 발생합니다. 여기서 내부 컬렉션에 열린 모달을 찾으려고 시도하지만 아직 거기에 없습니다.
open()
var modalInstance = $modal.open({ /* ... */ });
modalInstance.opened.then(function() {
modalInstance.dismiss('dismiss');
});
을 반환 그래서 "아마도 처리되지 않은 거부 : undefined"처럼. $ uibModal.open은 약속을 반환하고 콜백이 명시 적으로 정의되어 있지 않으면 콘솔에 오류가 표시됩니다. 귀하의 경우, 귀하는 서비스에서 폐쇄를 올바르게 처리하고 어디에서 모달 서비스를 호출 하는지를 원할 것입니다. 방출 할 버튼이 있고 다른 컨트롤러에 청취자가 있고 그 청취자에게 모달을 닫고 싶다고합시다. 다른 컨트롤러에서
.service('serviceModalName', function ($uibModal) {
this.open = function() {
var modalInstance = $uibModal.open({
templateUrl: '',
controller: 'serviceNameController'
});
};
modal.result.then(function() {
modal.dismiss();
}, angular.noop);
});
(이제까지 당신의 응용 프로그램에서), 나는 모달 서비스 컨트롤러에 컨트롤러를 가정 $ uibModalInstance 있습니다 모달 서비스에
을 : 이것은 당신이해야 할 일이다 그것으로 주입 된, 그것의 닫히거나 부르는 기능을 부르지 않을 것이다.
.controller('someOtherController', function ($scope, serviceModalName) {
var modalService = serviceModalName.open();
$scope.$on('modal.closed.somewhere', function (e, args) {
if (modalService) {
modalService.opened.then(function() {
modalService.close();
}, angular.noop);
}
};
});
전체 컨트롤러를 게시 할 수 있습니까? 오류가 발생할 수있는 몇 가지 장소가 있습니다. –
nvm. 지금 그것은 작동한다. ... 나는 왜 내가 havent 한 것을 바꾸 었는지 모른다. 그냥 –
요령을 되풀이하겠습니다. 무작위로 작동합니다 .. 가끔은 그렇습니다. P –