从另一个AngularJS控制器获取数据
Getting Data From Another AngularJS Controller
所以我对Ionic/Cordova/AngularJS的开发还是很陌生的。
现在我有2个控制器,"组"answers"事件"。我的目标是创建一个组,并在不同的页面上创建一个事件。一旦创建了一个组,我希望用户能够在他们的"创建事件"屏幕中选择这个组。然而,我就是不能让我的团队出现。我认为一个简单的ng-controller选项在我的HTML选项字段会做到这一点,但这似乎是不可能的。我尝试着将所有内容放在同一个控制器中,但这很容易变得非常混乱。有没有人能告诉我怎样才能做到这一点?谢谢!
<label class="item item-input item-select">
<div class="input-label">
Group
</div>
<select ng-model="event.groupname"> <!-- this is in my eventscontroller-->
<option ng-repeat="group in groups">{{group.name}}</option> <!-- these groups are in GroupsController, this doesn't work -->
</select>
</label>
您是否尝试过命名控制器并按名称调用它们?
<label class="item item-input item-select" data-ng-controller="events as eventsCtrl" >
<div class="input-label">
Group
</div>
<select ng-model="eventsCtrl.groupname" data-ng-controller="groups as groupsCtrl" > <!-- this is in my eventscontroller-->
<option ng-repeat="group in groupsCtrl.groups">{{group.name}}</option><!-- these groups are in GroupsController, this doesn't work -->
</select>
</label>
如果你想使用在users控制器中创建的组列表,那么它很简单…只需在rootScope数组中添加每个组。就像
$rootScope.groupList = []
$rootScope.groupList.push($scope.group) //assuming $scope.group is where use save single group data
现在你可以访问$rootScope。并通过访问
获取任意控制器中的组列表$rootScope.groupList
,但使用rootScope不是很好的做法。在控制器之间共享数据的最佳方式是服务,但如果你是Angular的新手,你现在可以选择rootScope,但服务是在多个控制器之间共享数据的最佳方式。
你可以使用service在你的控制器之间共享数据。服务为我们在整个应用程序中共享数据和功能提供了一种简单的方法。
我建议你阅读这篇关于如何在AngularJS中在控制器之间共享数据的文章。
这是你可以尝试的实现
<!-- SharedService -->
<script type="text/javascript">
angular.module('myApp')
.service('SharedService', [function () {
var main = {};
main.eventGroupName = '';
main.getEventGroupName = function(){
return main.eventGroupName;
};
main.setEventGroupName = function(groupName){
main.eventGroupName = groupName;
};
return main;
}]);
</script>
<!-- GroupsController -->
<script type="text/javascript">
angular.module('myApp')
.controller('GroupsController', ['$scope', 'sharedService', function ($scope, SharedService) {
$scope.event.groupname = SharedService.getEventGroupName();
// Remaining code for GroupsController
//
//
}]);
</script>
<!-- Eventscontroller -->
<script type="text/javascript">
angular.module('myApp')
.controller('EventsController', ['$scope', 'sharedService', function ($scope, SharedService) {
var groupName = 'Another name';
SharedService.setEventGroupName(groupName);
// Remaining code for Eventscontroller
//
//
}]);
</script>
<!-- View -->
<label ng-controller="GroupsController" class="item item-input item-select">
<div class="input-label">
Group
</div>
<select ng-model="event.groupname"> <!-- this is in my EventsController-->
<option ng-repeat="group in groups">{{group.name}}</option> <!-- these groups are in GroupsController, this doesn't work -->
</select>
</label>
相关文章:
- Ajax-如何获取数据
- 从键值结构中获取数据,并将其与AngularJS中ng重复的值进行比较
- 从数据库中获取数据并插入JavaScript变量
- 从单击的行上的列中获取数据
- Solr查询以按日期月份获取数据&年
- React路由器服务器端渲染和ajax获取数据
- 使用JavaScript在IE9中获取数据列表选项
- 从json子数组获取数据
- 使用angularjs中的rest调用通过id获取数据
- 正在从ruby应用程序中的数据库中获取数据
- 如何从servlet获取数据到ajax成功
- 从选择下拉菜单中获取数据
- 异步获取数据使用JavaScript同步获取数据
- 从服务器获取数据并在选择控件中使用ng选项无法显示选项
- 如何在Angular.js中循环动态添加Fields并获取数据并将其发送到服务器
- JavaScript-获取数据属性的值返回未定义的值
- 如何从文本区域获取数据并使用javascript进行解密
- 在put方法之前从作用域获取数据
- 事件循环的MEAN.JS setInterval进程(从另一个服务器获取数据)
- 使用ReactJS和Flux架构从服务器获取数据的正确方法是什么