2016-10-04 131 views
0

我希望大家都做得很好。多视图绑定相同的控制器?最佳方案?

我有一个控制器与几个意见。我想要的是,当我删除列表A的一些通知,然后模型列表B应该更新。

enter image description here 最好的&这个问题的优化解决方案?

一种方法是我提供服务并与两个控制器共享列表模型。但有没有其他最好的方法?

回答

0

您可以像上面提到的那样通过服务或工厂共享数据。或者您可以使用$rootScope.$broadcast事件在控制器的实例之间进行通信。

另一种方法是将状态置于父作用域中,然后通过组件/指令上的属性将该状态传递给它的子对象。例如。

<my-first-directive shared-data="sharedData"></my-directive> 
<my-second-directive shared-data="sharedData"></my-directive> 

这样您就可以使接收指令/组件无状态。

0

1.您可以共享列表视图的rootcope变量。

使用RootScope变量和函数不专业

2.你可以使用一个控制器,用于这两种观点。

如果两个视图的代码不是很多,则可以为这两个视图使用一个控制器。

+0

控制器是不是单身人士和两个实例将不能够访问对方的范围! – Amygdaloideum

+0

http://stackoverflow.com/questions/21919962/share-data-between-angularjs-controllers –

+0

是的,在那个例子中,控制器通过工厂共享数据,而不是通过具有相同控制器的相同实例。 – Amygdaloideum

0

我想,最好的办法不是为不同的组件创建两个相同的视图。对我来说,更好的做法是采用了棱角分明的路由,这样你就可以通过不同的途径使用一个状态:

$stateProvider.state("my_state", { 
     url: "/myView", 
     templateUrl: "/views/my-view.html", 
     controller: "MyCtrl" 
    }); 

附:不要为此使用$rootScope,这不是好习惯!)

+0

您没有举例说明如何在控制器实例之间共享数据模型。 – Amygdaloideum

0

试着这样做。

.when('/company/ticket/log/:company_id', { 
     templateUrl: 'views/company/company_ticket_log.html?v=' + CONFIG.VER, 
     data: { 
      authorizedRoles: [USER_TYPES.LOGINUSER] 
     } 
}); 

当您尝试这样做,在URL中使用列表数据和列表数据可以像const.js共享控制器

相关问题