2014-08-30 53 views
1

我想用UI邏輯擴展一些模塊。具有功能的角度擴展模塊(最佳實踐)

例如 - 簡單模塊,誰可以添加警報和清除警報。 並在其他模塊中使用它。在另一個模塊

var MessageBox = angular.module('MessageBox', ['ui.bootstrap']); 

MessageBox.controller('MessageBoxController', ['$rootScope', function ($rootScope) { 
    $rootScope.alerts = []; 
    $rootScope.addAlert = function (alert) { 
     $rootScope.alerts.push(alert); 
    }; 
    $rootScope.closeAlert = function (index) { 
     $rootScope.alerts.splice(index, 1); 
    }; 
}]); 

末使用:

var App = angular.module('App', ['MessageBox']); 

...和控制器:

console.log("$scope.alerts : " + $scope.alerts); 
addAlert({type: 'success', msg: 'Message.'}); 

它是用於擴展模塊和功能的最佳做法?

P.S.請排列這個問題,我不能獲得15的聲望。謝謝!

+1

[Angular best practices](http://stackoverflow.com/q/20802798/1959948) – Dalorzo 2014-08-30 18:02:16

回答

0

總之沒有。將功能和數據結構添加到rootScope最終會在您身上崩潰。這幾乎只是全局變量,這是設計軟件的一種可怕方式,因爲它創建了高度耦合。使用可以封裝數據和方法的服務會更好。定義你希望在一個服務中通過模塊/控制器/等共享的函數和數據,然後你可以簡單地將這些服務注入到其他想要使用它們的地方。