유지관리되는 코드에는 이런 상황이 많습니다. 잘못된 사용법인가요? 사용감은 좋은데 코드가 너무 헷갈립니다
이것은 분명히 게으른 접근 방식이므로 서비스 메서드의 의미가 매우 모호해집니다. $scope를 전달하면 실제로 어떤 매개 변수가 사용되는지 완전히 불분명해집니다. 그리고 이로 인해 서비스 메서드가 $scope에 불필요하게 의존하게 됩니다.
엄밀히 말하면, 비전역 상태 값은 서비스, 특히 수정에서 처리되어서는 안 됩니다. $scope 입니다. 즉, 여기서의 서비스는 일반적인 매개변수가 아닌 함수의 매개변수 목록이 명확해야 하는 인터페이스와 유사합니다. 예를 들어
물론 $location, $rootScope 등의 전역변수는 다른 컴포넌트를 거치지 않아도 되기 때문에 인젝션을 통해 얻을 수 있습니다.
내 블로그에 가서 콜백 매개변수로 전달하세요
실제로 테스트해 보니 서비스의 값을 컨트롤러의 $scope에 반환하면 클로저가 아무런 효과가 없는 것 같았습니다. 하지만 $scope를 전달하면 컨트롤러의 $scope가 직접 업데이트됩니다.
이것은 분명히 게으른 접근 방식이므로 서비스 메서드의 의미가 매우 모호해집니다. $scope를 전달하면 실제로 어떤 매개 변수가 사용되는지 완전히 불분명해집니다.
그리고 이로 인해 서비스 메서드가 $scope에 불필요하게 의존하게 됩니다.
엄밀히 말하면, 비전역 상태 값은 서비스, 특히 수정에서 처리되어서는 안 됩니다. $scope 입니다. 즉, 여기서의 서비스는 일반적인 매개변수가 아닌 함수의 매개변수 목록이 명확해야 하는 인터페이스와 유사합니다.
으아아아예를 들어
물론 $location, $rootScope 등의 전역변수는 다른 컴포넌트를 거치지 않아도 되기 때문에 인젝션을 통해 얻을 수 있습니다.
내 블로그에 가서 콜백 매개변수로 전달하세요
실제로 테스트해 보니 서비스의 값을 컨트롤러의 $scope에 반환하면 클로저가 아무런 효과가 없는 것 같았습니다. 하지만 $scope를 전달하면 컨트롤러의 $scope가 직접 업데이트됩니다.
아주 잘 작동해요.