在angularJS中以两个视图之间共享数据

时间:2016-07-24 21:31:51

标签: javascript angularjs

我有2个视图,每个视图都有一个控制器,当我点击“BL”按钮时,我想将数据从View1发送到View2:

这是View1: enter image description here

这是View2: enter image description here

我尝试使用事件my try,但只有当我点击“BL”按钮时才会激活Controller2 我想使用服务将数据从controller1发送到controller2,但我认为这不是我的情况 所以请帮忙,如何将数据从View1发送到View2 感谢

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

视图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;
....
}

我的代码的问题是,当我点击“BL”按钮时,Controleller2的方法“parentmethod”从未被调用

1 个答案:

答案 0 :(得分:1)

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