小编X.B*_*.B.的帖子

打开新窗口angularjs后在控制器之间共享变量

我处于这样一种情况,我必须将用户定义的对象从一个控制器传递到另一个控制器,该控制器在新窗口中打开.我尝试了几种常见的方法,比如$emit使用工厂或服务的$ rootScope,$broadcast从那里到第二个控制器.

但我总是陷入根深蒂固.我可以在那里记录变量,但是当新窗口打开时它们似乎消失了(甚至在新窗口的控制台中都没有出现未定义的变量).我可以从rootscope获得固定变量,但是没有从第一个控制器发出的任何变量.

有没有人知道如何解决这个问题?

这是我的代码:

// SHARING DATA BETWEEN CONTROLLERS VIA ROOT SCOPE:

var table_app = angular.module("tableApp", [])
.factory("sharedVars", function($rootScope, $log) {
    /*
     Receive emitted message and broadcast it.
     */
    $rootScope.$on("handleEmit", function(event, object){
        var value1 = object.data1;
        var value2 = object.data2;
        var value3 = object.data3;
        $log.log(value2, value3)           // WORKS
        $rootScope.$broadcast("handleBroadcast", 
            {data1: value1, data2: value2, data3: value3});
    })

    // JUST TO CHECK IF I CAN GET DATA FROM HERE:
    return { fixedSharedObject: {data1: 22, data2: 33, data3: …
Run Code Online (Sandbox Code Playgroud)

angularjs angularjs-service

6
推荐指数
1
解决办法
4020
查看次数

标签 统计

angularjs ×1

angularjs-service ×1