在我的情况下,如何将数据从一个控制器传递到另一个控制器

时间:2014-06-05 21:23:24

标签: javascript html angularjs

我正在尝试使用State Provider将数据传递到我的控制器。

我有类似的东西

app.js

  $stateProvider       
        .state('test', {
            url: '/te',
            views: {
                '': {
                    templateUrl: 'test.html',
                    controller: 'testCtrl'
                },
                data:{
                    testValue:true
                }
            }
        })

我的控制器:

app.controller('mainTestCtrl', function($scope) {
    //I need to be able to get the testValue from here.
})


app.controller('testCtrl', function($scope, $state) {
    var testValue = $state.current.views.data.testValue;
})

我无法真正为mainTestCtrl提供状态提供程序,因为只有在调用true时我才需要testValue为testCtrl。我需要一种方法将testValue传递给mainTestCtrl。有没有办法做到这一点?感谢。

1 个答案:

答案 0 :(得分:0)

如果两个控制器具有相同的级别( a.e而不是父子),则可以使用$rootScope.$broadcast

演示1 Fiddle

小心!!!

  

在发送$broadcast之前,请确保初始化2 nd 控制器。否则没有人会听。


但我会使用将存储testValue的服务,并且每个控制器都可以将其取回:

演示2 Fiddle