저는 최근에 AngularJS와 함께 작업 해 왔으며 잘못된 패러다임에 대해 생각할 수도 있다고 생각합니다.컨트롤러 내부의 각도 컨트롤러
사용자가 열어 놓은 "창"을 추적하는 창의 컨트롤러 (ng-repeat에 연결됨)가 있습니다. 이제이 창들 각각에 데이터가 있어야합니다. 즉 거의 모든 컨트롤러에 내부에 다른 컨트롤러가있을 것입니다.
나는 답변으로 "팝업"컨트롤러를 서비스로 다시 작성하라고 제안하는 one answer here (with a similar situation)을 읽었습니다.
에 구획 컨트롤러 :
app.controller('PaneCtrl', function ($scope, PaneService){
var updatePanes = function(panes){
$scope.panes = panes;
}
// subscribes this controller to the Pane Service
PaneService.registerObserverCallback(updatePanes)
});
서비스
app.factory('PaneService', function(){
var observerCallbacks=[]
var panes = []
var notifyObservers = function(){
angular.forEach(observerCallbacks, function(callback){
callback(panes);
});
}
return {
createRootPane: function(title, meta, data){
// do stuff
},
toggleSearchPane: function(){
// do stuff
notifyObservers();
},
registerObserverCallback: function(callback){
observerCallbacks.push(callback);
}
}
});
내 질문에 가장 좋은 방법은 여기, 그리고 가장 좋은 방법이 "로이 다시 무엇인가 단 하나의 서비스 ", 그 서비스는 어떻게 생겼을까요?