Javascript 带函数的角度扩展模块(最佳实践)
我想用UI逻辑扩展一些模块 例如,simple模块,可以添加警报和清除警报。 并在其他模块中使用它Javascript 带函数的角度扩展模块(最佳实践),javascript,angularjs,Javascript,Angularjs,我想用UI逻辑扩展一些模块 例如,simple模块,可以添加警报和清除警报。 并在其他模块中使用它 var MessageBox = angular.module('MessageBox', ['ui.bootstrap']); MessageBox.controller('MessageBoxController', ['$rootScope', function ($rootScope) { $rootScope.alerts = []; $rootScope.addAle
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.'});
这是扩展模块和功能的最佳实践吗
另外,请给这个问题排名,我不能得到15分。谢谢 简言之,不。向rootScope添加函数和数据结构最终会让您分崩离析。它几乎只是全局的,这是一种糟糕的软件设计方法,因为它会产生高度耦合。最好使用能够封装数据和方法的服务。定义您希望在服务中的模块/控制器/etc之间共享的功能和数据,然后您可以简单地将这些服务注入其他想要使用它们的地方