2
我最近一直在和AngularJS合作,我覺得我可能會考慮範型錯誤。控制器內部的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);
}
}
});
我的問題是什麼是最好的做法在這裏,如果最好的做法是「改寫本作只有一項服務「,那項服務會是什麼樣子?