2013-08-26 1 views
0

파일 하나에 a 컨트롤러가 하나 있는데 그 중 하나가 기능을 호출하기를 원할 때 또는 b 컨트롤러에 있습니다. 그게 가능하니? 나는이 격자에 대해 afterSelectionChangea이라는 파일에서 호출 될 때마다 다른 그리드를 업데이트하고 싶습니다. 따라서 파일을 병합하거나 $watch 함수를 사용할 수 없습니다. 너무 많은 시간이 걸립니다. 페이지를로드 할 때. 궁극적으로이 문제도 해결하려고합니다. 그들은 동일합니다Angularjs 컨트롤러가 다른 파일의 다른 컨트롤러와 통신합니다.

Ng-Grid flickers grid when updating

을이 그것의 또 다른 모습이다. 만약 누군가가 그 중 하나에 대답 할 수 있다면 좋을 것입니다!

답변

1

두 컨트롤러에 모두 주입 된 서비스를 사용해야합니다. http://bit.ly/ZVvj1M에서 간단한 예제를 발견했습니다. 이 방법을 설명해야합니다.

1

코드가 다른 파일에 있으면 실제로 영향을주지 않습니다. 페이지가로드 될 때 모든 파일이 브라우저에로드되므로 통신 할 수있는 방법이 필요합니다.

2 개의 컨트롤러가 통신하는 데는 여러 가지 방법이 있지만,이를 처리하는 가장 좋은 방법을 결정하는 것은 달성하려는 바에 달려 있습니다. 제어기 a과 제어기 b에 각각 동일한 모델에 대한 참조가있는 경우, 모델을 갱신하여 이들 사이에서 통신 할 수 있습니다. 모델의 변경 사항은 두 제어기 모두에 즉시 반영됩니다. 모델이 분리 된 경우 (예를 제공하십시오), 서비스가 더 나은 통신 수단이 될 수 있습니다. 그리고 당신이 완전히 다른 것을하고 있다면, 그것을 모두 함께 할 수있는 더 좋은 방법일지도 모릅니다.

어쨌든 최선의 답변을 찾는 데 도움이되도록 최선을 다하고있는 구체적인 정보를 제공해주십시오.