我想用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点声望。谢谢!的
答案 0 :(得分:0)
总之没有。向rootScope添加函数和数据结构最终将会对您产生影响。它几乎只是全局变量,这是设计软件的一种可怕方式,因为它创建了高耦合。使用可以封装数据和方法的服务要好得多。定义您希望在服务中的模块/控制器/等之间共享的功能和数据,然后您可以将这些服务简单地注入到其他想要使用它们的地方。