【问题标题】:how to pass variable from child state to a parent state AngularJs ui-router如何将变量从子状态传递到父状态AngularJs ui-router
【发布时间】:2017-09-22 13:17:12
【问题描述】:

我的 index.htm 中有两个页面 pageA.html 和 pageB.html。

在 app.js 中我使用了 ui-router。

当我的应用运行 java 控制器时,将应用重定向到 index.html,其中 $urlRouterProvider 默认激活 pageA。

所以在 index.html 我有

<div ng-app="myApp">
<span>{{user.name} {{user.firstname}}</span>
<a href="#pageA"><a/>
<a href="#pageB"><a/>
   <div ui-view   ></div>
</div>

在 app.js 中

$urlRouterProvider.when('', '/pageA');
$stateProvider

    .state('home', {
        url : '/home',
        views : {
            "" : {

                templateUrl : 'index.html',
                controller : 'IndexController'
            }
        }

    })
.state('pageA', {
        url : '/pageA',
        views : {
            "" : {

                templateUrl : 'pageA.html',
                controller : 'pageAController'
            }
        }

    })


    .state('pageB', {
        url : '/pageB',
        views : {
            "" : {

                templateUrl : 'pageB.html',
                controller : 'pageBController'
            }
        }

    })

});

我尝试在 IndexController 和 PageAController 中设置用户变量:

$scope.user = UserService.getConnectedUser();

问题是在 index.html 中无法识别用户。

我不知道如何通过那里?

更新:

我尝试了建议的解决方案: 我在我的 IndexController.js 中添加了

$rootScope.$broadcast('HomeEvent', "String"); // going down
    $scope.$on("HomeEvent", function (evt, data) {
            $scope.Message = "Inside HomeController : " + data;
    });

在我的 PageAController.js 中:

$rootScope.$on('HomeEvent', function (event, data) {
      $scope.Message = "Inside PageAController : " + data;
        console.log("data getted ="+$scope.Message); // 'Some data'
});

它甚至没有输入 $on ,我是不是错过了什么?

【问题讨论】:

  • 查看广播(调用链下的函数)和发射(调用链上的函数)。这就是我们通常用来在控制器之间传递信息的方式
  • 谢谢,很有趣,我尝试使用它,你能看到我的问题的更新吗,它没有进入 $on ti handler 事件
  • 我尝试使用 $timeout(function(){},500);为了等待孩子被创建
  • 很抱歉直到现在才看到您的回复。很高兴你知道了。

标签: javascript html angularjs spring-mvc


【解决方案1】:

通过使用广播(调用链下的函数)和发射(调用链上的函数)解决问题,并将广播的时间设置为延迟时间,以便通过引用 this 来等待子节点的创建提问link

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2016-06-03
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-10-27
    • 2017-05-18
    • 2019-03-08
    相关资源
    最近更新 更多