【发布时间】:2014-12-09 14:40:56
【问题描述】:
我需要在第一个控制器的方法中从第二个控制器调用初始化用户设置值(设置为 rootscope)的方法。
值成功设置为rootscope后返回前提,继续执行第一个控制器的第二个方法。
我尝试使用发射和广播示例,但没有运气。
谁能给我一个正确的建议?
我正在使用 Angular 1.2 和 Ionic 1,beta 13
非常感谢您的帮助。
模板:
<ion-view title="{{ 'DAYS_RESULTS' | translate }}" >
<ion-content ng-controller="DailyStatsCtrl" ng-init="setData()">
代码:
// First cotroller call setData in ng-init
angular.module('starter')
// Controller definition
.controller('DailyStatsCtrl', function($scope, $rootScope, $ionicSlideBoxDelegate, $timeout , $ionicLoading , $q, $translate, DialsComputeService, cordova, LocalStorService, $ionicPopup, $state, $ionicNavBarDelegate, testService, $ionicPlatform) {
$scope.setData = function() {
$ionicPlatform.ready(function() {
$timeout(function() {
$scope.$emit("onSomething", "");
alert("TEST");
}, 1000);
});
};
在第二个控制器中:
angular.module('starter')
// Controller definition
.controller('SettingsCtrl', function($scope, $rootScope, $ionicLoading, $ionicPlatform, LocalStorService, $timeout, $translate, $ionicPopup, $state, $ionicNavBarDelegate) {
$scope.getUserSettigns = function() {
alert("received");
$scope.test = 'event received';
}
$scope.$on('onSomething', function(e) {
$scope.getUserSettigns();
});
【问题讨论】:
-
你能把第一个和第二个控制器的代码发布在html中吗?
-
我刚刚更新了我的问题。
-
和
getUserSettings()属于第二个控制器作用域? -
是的 getUserSettings 在第二个控制器内部。
标签: javascript angularjs angular-promise rootscope emit