2016-07-24 150 views
0

我有2次,每一个有一个控制器,我想从视图1将数据发送到视图2,当我点击“BL”按钮:共享数据

这是视图1: enter image description here

,这是视图2: enter image description here

我试图用事件my try,但控制器2将只有当我点击“BL”按钮 激活我想用一个服务从发送数据控制器1到控制器2,但是我认为这不是我的情况 所以请有任何帮助,我怎样才能从视图1将数据发送到视图2 感谢

编辑: 这是我第二次尝试:

视图1 /控制器1:

$scope.BLButton = function(){ 


    $scope.foo = Service.foo; 
    Service.foo = '85'; 

    } 
    .factory('Service', function() { 
            var Service = { 
             foo: '85' 
             }; 
             return Service; 
            }); 

视图2 /控制器2:

//this method is called to display the data in the input Text from a web Service 
$scope.parentmethod = function() { 
    //traitement 
$scope.foo = Service.foo; 
.... 
} 

我的代码的问题是,续之法“parentmethod”当我点击“BL”按钮时,从不会调用roleller2

+2

有几种方法可以实现这一点(共享服务,组件)。发布你的代码以获得更好的帮助 – dfsq

+3

你通常想看的第一件事就是使用服务在应用程序的各个部分之间共享数据。您的图片价值不大,请提供[mcve] – charlietfl

+0

我已更新我的帖子Sir – user3821206

回答

1

最好的方法是将您的所有业务逻辑(BL)移动到将维护应用程序状态的服务。您试图以某种方式滥用控制器,因为他们唯一的目标是粘贴呈现和BL,而不是以任何形式持有应用程序状态。问题在于控制器在视图更改时被创建和销毁,因此它们不适合作为状态持有者。在您的情况下,您可以将数据存储在服务中(在您的应用程序工作时实例化并保持活动),然后在控制器的另一个视图中检索它。