同步AngularJS中的作用域

24 浏览
0 Comments

同步AngularJS中的作用域

这个问题已经有了答案

一个AngularJS控制器能调用另一个控制器吗?

我们正在构建一个将成为大型Angular应用程序的项目。我们已经广泛地使用了指令、服务并拥有多达14个控制器。

我们的问题是在控制器之间共享数据。我们希望能够在相距很远(不是兄弟)的控制器之间共享数据,并且不会破坏双向绑定。

我建议使用专门传递数据的服务。

var MyApp = angular.module('MyApp', []);
MyApp.factory('dataContainer', function(){ return {} });
function FirstCtrl($scope, dataContainer) {
    $scope.data = dataContainer;
}
function SecondCtrl($scope, dataContainer) {
    $scope.data = dataContainer;
}

您可以在这个fiddle中尝试它:http://jsfiddle.net/didier_/R2Bgs/2/

这是一个好的做法吗?

admin 更改状态以发布 2023年5月19日
0
0 Comments

使用服务绝对是一个好主意。在Angular项目中,服务只是默认的命名方式,你无需将服务看作是对象。当你的应用程序发展壮大时,你可能会为不同类型的对象(如状态对象、资源对象、帮助对象等)使用工厂方法,并且“服务”的名称变得有点含糊不清。\n\n但是,请谨慎使用原始状态对象传递。你应该将其访问封装在方法/获取器和设置器中,以避免应用程序的不同部分在不应该覆盖彼此的状态时进行覆盖,这可能会导致繁琐的调试。

0