两个angularjs控制器之间的数据传输

时间:2015-11-18 09:06:00

标签: angularjs iframe controllers

我想在运行时更改iframe源

<div class="pp lsv-video pp-player" id="rs" ng-controller="ctrl2">
        <input type="text" style="width:0px;height:0px;display:none;"  />
        <iframe src="" class="lsv" marginheight="0" marginwidth="0" frameborder="0"></iframe>
    </div>

当用户点击任何

  • (如下所述)时,提到的数据b.VideoSrc应该转移到不同的控制器Ctrl2,并且必须更改iframe源。

    <ul ng-controller="ctrl1">
                            <li ng-repeat="b in KeynoteSessions | filter:isBD">
                                <a href='#rs' class="fancybox" name='{{b.VideoSrc}}'>
                                    <img src='{{b.ImageSrc}}' width='{{b.ImageWidth}}' height='{{b.ImageHeight}}' alt='{{b.ImageAlt}}' /><br />
                                    {{b.Text}}
                                </a>
                            </li>
                        </ul>
    

    请帮助我实现这一目标,谢谢!

  • 2 个答案:

    答案 0 :(得分:1)

    有很多方法 1.您可以创建服务并使用通用服务来共享数据。 2.你可以使用rootscope变量。 3.angularjs $ emit,$ broadcast方法你可以使用 像

    myApp.factory('Data', function () {
        return { FirstName: '' };
    });
    
    myApp.controller('FirstCtrl', function ($scope, Data) {
        $scope.Data = Data;
    });
    
    myApp.controller('SecondCtrl', function ($scope, Data) {
        $scope.Data = Data;
    });
    

    http://jsfiddle.net/HEdJF/

    检查一下:Share data between AngularJS controllers

    答案 1 :(得分:0)

    通常我将相关内容放在同一个控制器中(Youtube框架和#34;远程&#34;一起作为例子)但有时我不能,所以我通过Javascript变量传递数据(Dont forget that your var need to be defined outside your controller