我希望大家都做得很好。多視圖綁定相同的控制器?最佳方案?
我有一個控制器與幾個意見。我想要的是,當我刪除列表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