我有2个视图,每个视图都有一个控制器,当我点击“BL”按钮时,我想将数据从View1发送到View2:
我尝试使用事件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”从未被调用
答案 0 :(得分:1)
最好的方法是将所有业务逻辑(BL)移动到将维护应用程序状态的服务。您试图以某种方式滥用控制器,因为他们唯一的目标是粘合演示和BL,而不是以任何形式保持应用状态。问题是控制器是在视图更改时创建和销毁的,因此它们不适合作为状态持有者。在您的情况下,您可以将数据存储在服务中(在应用程序工作的整个过程中实例化并保持活动状态),然后在控制器的另一个视图中检索它。