0

검색 상자와 결과 목록이있는 간단한 앱이 있습니다. 검색 상자에는 자체 컨트롤러 SearchCtrl이 있고 결과 목록에는 DocListCtrl이 있습니다. SearchCtrl은 사용자가 제출하고 DocListCtrl이 청취하고 결과를 업데이트 할 때 이벤트를 내 보냅니다. 그것은 사용자가 쿼리를 입력하고 제출할 경우 잘 작동합니다. 그러나 내 문제는 사용자가 복사/붙여 넣기 "/ app/search? q = foo"와 같은 검색 이벤트가 일 때 전에 DocListCtrl이 준비되면, 따라서 결과는 업데이트되지 않습니다.브라켓 캐스트 이벤트 컨트롤러가 준비되지 않았습니다.

일반적으로 한 컨트롤러가 다른 컨트롤러에 대한 종속성을 선언하는 방법이 있습니까? SearchCtrl을 가지고 데이터가 마지막으로로드 될 때 DocListCtrl이 볼 수있는 데이터를 유지해야합니까?

+0

안녕하세요 @ porfuse. 어떤 이유로이 컨트롤러를 2 대 사용하고 있습니까? 하나의 컨트롤러로 달성 할 수 없었습니까? – vin

+0

@vin 검색 ctrl은 앱의 다른 영역에서 계속 유지 될 것이므로 별도입니다. 예를 들어 "detail"보기에는 검색 양식도 있습니다. 또한 검색 ctrl은 쿼리를 구문 분석하고 서버에서 데이터를 가져 오는 작업 만 처리합니다. DocListCtrl은 페이지 매김과 다른 몇 가지 작업을 처리합니다. – jaredrada

+0

이벤트를 브로드 캐스트해야합니까? DocListCtrl이 SearchCtrl의 하위 항목 인 것처럼 들리지만 부모 범위를 가져 와서 찾을 수 없습니까? – Neil

답변

1

이미 알았 듯이 컨트롤러 인스턴스의 순서가 중요하도록 앱을 구성하면 안됩니다. 더 나은 접근 방법은 검색 결과를 관리하는 서비스를 사용하는 것입니다. 검색 결과는 두 컨트롤러에 모두 주입 할 수 있습니다.

예제 서비스 : https://stackoverflow.com/a/15390245/215945

관련 문제