2014-11-24 4 views
4

검색을 많이하지 않습니다. 여기에 비슷한 스레드가 하나 있지만 꽤 잘 작동하지 않습니다.AngularModalService : 컨트롤러에 데이터 전달

예제는 모달이 별도의 컨트롤러를 얻는 것을 보여줍니다. 이런 모습입니다.

var app = angular.module('myApp', ['ngSanitize','angularModalService']); 
app.controller('SampleController', ['$scope', function($scope) { 

    $scope.showAlert = function() { 

     ModalService.showModal({ 
      templateUrl: "alertWindow.html", 
      controller: "AlertController", 
      inputs: { 
       title: "Add New Alert", 
      } 
     }).then(function(modal) { 
      modal.element.modal(); 
      modal.close.then(function(result) { 
       $scope.result = "blah"; 
      }); 
     }); 

    }); 
}]); 

app.controller('AlertController', ['$scope', function($scope) { 

    $scope.close = function(result) { 
     close(result, 500); 
    }; 
}]); 

주의해야 할 점은 모달 대화 상자에 모달 대화 상자에 SampleController에있는 몇 가지 기본값이 있어야한다는 것입니다. 나는 서비스에 관해 읽었지 만, 나는 그것이 여기서 일한다고 생각하지 않는다. 입력 : showModal()의 {}는 의심스러워 보이지만 모달 창이 표시되면 어디에서 가져올 것인지 정확히 모르겠습니다. 다른 예제에서는 간단한 예/아니오 버튼이나 텍스트 입력을 빈 기본값으로 가져 왔습니다.

+0

우선 구문 오류가있는 것 같습니다. 컨트롤러를 정의 할 때 닫는 대괄호 ']'가 없습니다. 또한 $ scope.showAlert는 SampleController 안에 없습니다. – 12hys

+0

맞아요. 머리를 가져 주셔서 고마워요. 편집 됨. 그러나 이것은 컨트롤러에서 분명히 볼 수있는 것보다 더 많은 일이 일어나고 있기 때문에 가독성을 위해 창에서 편집하는 중이었습니다. 그래서, 제 문제는 여전히 있습니다. 적어도 코드는 이제 더 읽기 쉬워야합니다. –

+0

SampleController에 ModalService 종속성을 포함하지 않습니다. 어디서나 ModalService를 정의 할 수 있습니까? – 12hys

답변

7

문서에 따르면, 입력을 모달 컨트롤러에 주입합니다. 제목은 위에서 언급 한 입력이므로 다음과 같이 모달 컨트롤러를 변경하십시오.

app.controller('AlertController', ['$scope', 'title', function($scope, title) { 
    $scope.title = title; 

    $scope.close = function(result) { 
     close(result, 500); 
    }; 
}]); 
+0

고마워요. 지금 당장 집에 올 때 이것을 확인합니다. –

+0

이것은 효과가 있습니다. 감사. 죄송합니다. 돌아가려면 너무 오래 걸렸습니다. –

+0

고마워 그것은 나를 위해 일했다. SampleController에이 제목을 다시 전달하는 것은 어떻습니까? 누구든지이 일을 도와주세요. –

관련 문제