화면의 일부를 업데이트하는 컨트롤러가 있습니다. 때로는 사용자가 서버 측에서 해당 지역의 내용을 무효화하는 작업을 수행하기도합니다. 그렇다면 사용자가 다른 곳에서 버튼을 클릭하면 다른 컨트롤러를 업데이트 할 수 있습니까? 그와 같은 일반적인 패턴을 따랐습니다. 즉 :AngularJS : 다른 컨트롤러 또는 JS에서 컨트롤러 업데이트 기능 호출
appControllers.controller('linksController', ['$scope', '$filter', '$interval', function ($scope, $filter, $interval) {
$scope.update = function() {
// update code here... this is what I want to invoke from another function or area of JS
}
데이터에 따라 적합한 공유 데이터를 제공하는 서비스를 사용하거나 스코프 (방출/방송)의 pub/sub 메소드를 사용하는 것이 좋습니다. 전역 유형의 이벤트이고 rootScope가 전송하는 것이 합리적이라면 pub/sub 접근 방식을 옹호합니다. 그렇지 않으면 서비스 접근 방식이 모듈성을 위해 더 좋을 것입니다. –
위에서 언급 한'$ emit'과'$ on' 또는 $ broadcast'를 체크 아웃하십시오. @ MattWhipple의 요지에 따라, 이벤트를 사용하지 않는다면 공장을 사용하십시오. 범위에 모든 것을두면 코드가 단위 테스트에 훨씬 더 어려워집니다. – wootscootinboogie
조언을 주셔서 감사합니다, 방송 물건은 유망 해 보입니다 – Chris