我希望大家都做得很好。多视图绑定相同的控制器?最佳方案?
我有一个控制器与几个意见。我想要的是,当我删除列表A的一些通知,然后模型列表B应该更新。
一种方法是我提供服务并与两个控制器共享列表模型。但有没有其他最好的方法?
我希望大家都做得很好。多视图绑定相同的控制器?最佳方案?
我有一个控制器与几个意见。我想要的是,当我删除列表A的一些通知,然后模型列表B应该更新。
一种方法是我提供服务并与两个控制器共享列表模型。但有没有其他最好的方法?
您可以像上面提到的那样通过服务或工厂共享数据。或者您可以使用$rootScope.$broadcast
事件在控制器的实例之间进行通信。
另一种方法是将状态置于父作用域中,然后通过组件/指令上的属性将该状态传递给它的子对象。例如。
<my-first-directive shared-data="sharedData"></my-directive>
<my-second-directive shared-data="sharedData"></my-directive>
这样您就可以使接收指令/组件无状态。
使用RootScope变量和函数不专业
如果两个视图的代码不是很多,则可以为这两个视图使用一个控制器。
我想,最好的办法不是为不同的组件创建两个相同的视图。对我来说,更好的做法是采用了棱角分明的路由,这样你就可以通过不同的途径使用一个状态:
$stateProvider.state("my_state", {
url: "/myView",
templateUrl: "/views/my-view.html",
controller: "MyCtrl"
});
附:不要为此使用$rootScope
,这不是好习惯!)
您没有举例说明如何在控制器实例之间共享数据模型。 – Amygdaloideum
试着这样做。
.when('/company/ticket/log/:company_id', {
templateUrl: 'views/company/company_ticket_log.html?v=' + CONFIG.VER,
data: {
authorizedRoles: [USER_TYPES.LOGINUSER]
}
});
当您尝试这样做,在URL中使用列表数据和列表数据可以像const.js共享控制器
控制器是不是单身人士和两个实例将不能够访问对方的范围! – Amygdaloideum
http://stackoverflow.com/questions/21919962/share-data-between-angularjs-controllers –
是的,在那个例子中,控制器通过工厂共享数据,而不是通过具有相同控制器的相同实例。 – Amygdaloideum