Angularjs:一个在控制器之间共享数据的工厂
Angularjs: a factory to share data between controllers
我有一个有多个视图的angular.js应用程序,我需要在视图更改时保持状态。
所以我使用一个非常简单的工厂来共享数据。并且,在控制器中,我使用工厂名称来使用我的数据,而不是"$scope":
app.factory('share', function() {
return {};
}
app.controller('FirstCtrl', function ($scope, share) {
share.obj1['a'] = 'ABC';
});
app.controller('SecondCtrl', function ($scope, share) {
share.obj1['b'] = 'DEF';
if (share.obj1['a'] === 'ABC') {
...
}
});
并且,我的简化的html视图是这样的:
...
<div ng-repeat="(key, item) in obj1">
{{item}}
</div>
...
这当然不行,因为视图中的ng-*指令只能访问$scope…
是否有可能保持我的数据同步与共享工厂使用$scope?
您可以在每个控制器的末尾执行$scope.share = share
,当然还可以修改视图:
<div ng-repeat="(key, item) in share.obj1">
或者,如果share
的结构是NOT要改变(总是有一个obj1
),你可以做angular.extend($scope, share)
。这是危险的如果share
获得了新的属性,这些将不会被作用域看到,直到一个新的控制器被创建。
相关文章:
- 获取@ResponseBody的一部分作为主干和Spring MVC控制器之间的参数
- 在控制器和数据对象之间同步数据
- Nodejs API控制器,用于在API之间切换
- 在控制器之间切换,可以't更新视图
- 使用服务(AngularJS)在控制器之间共享数据
- 通过共享服务在两个不同ng应用程序中的控制器之间共享数据
- 在控制器之间传递变量的最佳方式
- 使用Angularjs在两个不同页面的控制器之间共享数据
- 在Angular Bootstrap Modal和父控制器之间共享作用域
- 2ng控制器,并且需要在控制器之间共享数据
- 在控制器angular js之间共享数据
- 访问angularJS中页面之间的控制器
- 如何将json文件中的数据提取到对象数组中,并在两个控制器之间共享
- 控制器和支持路由之间的角度保持选择
- 如何在多个控制器之间封装设置$scope值
- 在angularJS中使用模态窗口时,在控制器之间共享对象数组
- 在角度上不同控制器之间共享状态
- AngularJS:如何在控制器之间传递变量
- 在OnsenUI+AngularJS+PhoneGap中的控制器之间传递数据
- 使用 AngularJS 在控制器之间传递变量