구조가 매우 유사한 여러 패널로 구성된 페이지가 있습니다. 그들은 각각 하나의 컨트롤러를 사용합니다. 그러나 그들의 유사성에 난 컨트롤러 기능과 같이 재사용 :컨트롤러 기능 다시 사용하기 + 확장하기
function panelController($scope) {
...
}
angular.module('myApp.controllers')
.controller('panel1Controller', panelController);
angular.module('myApp.controllers')
.controller('panel2Controller', panelController);
그 결과에 Panel1 및 panel2 자신 만의 독특한 범위를 가지고 있지만 뷰에 바인딩 할 수있는 측면에서 동일 보일 것입니다.
그러나 이제는 panel3에 대해 동일한 패턴을 사용하지만 약간의 확장을 사용하려고합니다. 즉, panel3에 대해서만 $ 범위에 포함시키고 자하는 항목이 있습니다. 그래서 이상적으로 다음과 같이 할 수 있습니다.
function panel3ControllerExtension($scope) {
$scope.panel3Field = "I must only live in panel3";
}
angular.module('myApp.controllers')
.controller('panel3Controller', panelController, panel3ControllerExtension);
하지만 그건 불가능합니다. 이것에 대한 좋은 패턴이 있습니까?
편집 : 마찬가지의 패널은 그들이 $ 범위에 포함하는 기대에서 유사하다. 특히 범위에는 고객 개체가 포함될 것으로 기대됩니다. 그래서 예. panel1은 $ scope.customer.name에 바인드하고 panel2는 $ scope.customer.phone에 바인드합니다. ... 그래서 그들은 다르게 보이고 다르게 행동하기 때문에 나는 그들의 지시를하는 것이 갈 길이라고 생각하지 않습니다. 틀 렸으면 고쳐줘.
코드의 재사용 가능한 부분에 서비스를 사용해보십시오. –