[英]angular extending modules with functions(best practices)
我想用UI-logic扩展一些模块。
例如-简单模块,谁可以添加警报和清除警报。 并在其他模块中使用它。
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.'});
是扩展模块和功能的最佳实践吗?
PS请对这个问题进行排名,我无法获得15点声望。 谢谢!
简而言之,没有。 向rootScope添加功能和数据结构最终将使您分崩离析。 这几乎就是全局变量,这是设计软件的一种糟糕方法,因为它会产生很高的耦合度。 最好使用可以封装数据和方法的服务。 定义您希望跨服务的模块/控制器/等共享的功能和数据,然后您可以将这些服务简单地注入到其他想要使用它们的地方。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.