Javascript 共享双作用域数据 短版:
我正在构建一个至少有5个作用域的angular应用程序 我想在他们之间共享数据,我正在寻找最好的方法 而不是转到$parent。$parent 长版本: 我有一个控制器,它包含多个指令(每个指令都包含新的$scope),从控制器代码我可以使用ng modal在视图中访问我的变量,但是如果我希望所有变量都可以从正确的控制器访问,我需要访问$parent.$parent.$parent scope 我相信有更好的办法。Javascript 共享双作用域数据 短版:,javascript,angularjs,angularjs-scope,Javascript,Angularjs,Angularjs Scope,我正在构建一个至少有5个作用域的angular应用程序 我想在他们之间共享数据,我正在寻找最好的方法 而不是转到$parent。$parent 长版本: 我有一个控制器,它包含多个指令(每个指令都包含新的$scope),从控制器代码我可以使用ng modal在视图中访问我的变量,但是如果我希望所有变量都可以从正确的控制器访问,我需要访问$parent.$parent.$parent scope 我相信有更好的办法。 谢谢您需要将所有数据存储在服务中 样本: 控制器之间的共享数据可以放在$root
谢谢您需要将所有数据存储在
服务中
样本:
控制器之间的共享数据可以放在$rootScope上,所有控制器都可以使用。您可以直接注入$rootScope并对其进行设置
但是,要在控制器之间实现持久性,您必须使用服务或工厂。使用服务共享数据。Aggreed With@Gustav,服务是最好的且易于管理的。您的意思是在控制器之间共享数据,对吗?如果您知道,请阅读相关内容,尝试@Maher no我是说$scopes。好的,但是,如果我的数据将存储在控制器中,我仍然必须到达作用域内的该控制器,并且我仍然必须到达$parent.$parent.$parent排序后,您可以更新服务中的数据或从排序后的数据创建新变量,并且必须与她一起工作。我希望在两个作用域之间共享数据,从我所读到的内容来看,将变量放入$rootScope并不是解决它的最佳方法。谢谢
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)
}
}]);