2015-12-14 188 views
2

短版

IM建立一个角度应用程序,至少有5范围 我想分享他们寻找最好的方式IM之间的数据做准备,以便 代替。$父父$ ......共享数据

长版

我有一个包含多个指令的控制器(每条指令持有新$范围),在控制器代码IM达到我的变量使用ng-modal的视图,但是如果我希望所有变量都可以从正确的控制器到达,我需要到达$ parent。$ parent。$ parent scope

确定有更好的方法。 谢谢!

+6

使用服务共享数据。 – Gustav

+0

与@Gustav合作,服务最好,易于管理。 – katmanco

+0

你的意思是在控制器之间共享数据,对吧? – Maher

回答

0

您需要将所有的数据存储services 样品中:

angular. 
module('myServiceModule', []). 
factory('notify', [function() { 
    var data = {}; 
    return : { 
    getData : function(){ return data;} 
    }, 
    setData : function(item){ 
    data = item 
    } 
}]). 
controller('myCtrl', ['$scope', 'notify', function($scope, notify) { 
    $scope.someData = notify.getData(); 
    $scope.doSomething = function(someObj){ 
    notify.setData(someObj) 
    } 
}]); 

Angular services

+0

好的,但如果我的数据将被存储在控制器中,她仍然需要在范围内到达该控制器,并且生病仍然需要达到$ parent。$ parent。$ parent –

+0

排序后,您可以更新服务中的数据或创建来自排序数据的新变量,必须与她一起工作。 –

0

控制器之间共享数据可以在$ rootScope这是提供给所有控制器放。您可以直接注入$ rootScope并在其上设置事物。

但是,对于控制器中的持久性,您必须使用服务或工厂。

+0

我想在范围之间共享数据,并且从我读过的将变量放在$ rootScope中并不是解决它的最佳方式。谢谢! –

+0

将其添加到$ rootScope中.. –