原諒如果這是一般的,但我正在尋找一種方法,我是新來的Angular。假設我有一個主控制器和一個運行時創建的模態控制器。讓他們成爲WidgetCtrl和NewWidgetModalCtrl。更新家長或其他同時角控制器的最佳做法?
我想創建一個Widget並使用$resource.save()
將該數據發送到服務器。它返回一些數據,我們關閉「New Widget Modal」(它被銷燬)。我如何將這個小部件添加到WidgetCtrl的列表中?
有人說使用共享服務/工廠。但問題是這些是單身人士。我可能需要兩個單獨的Widgets列表。我可能需要購物車列表中的小部件和熱門列表。如果我使用單身人士,我很確定它是所有控制器中的靜態列表。我不得不復制非常相似的類來具有相同的結構化但不相似的數據。 ....?它非常適合像所看到的這個例子會話:Model Shared Between Two Controllers,但沒有得到很好的東西,像瀏覽,並從同類型對象的各種列表中選擇。
如何獲得抽象Widget定義,以及控制器之間的構建和控制列表? Angular討論似乎認爲通過修改父$ scope對象來考慮x控制器通信是一種不好的做法。在這種情況下這是非常糟糕的,因爲我可以有任何數量的模態出現。
有人說做$發射,然後在「父」範圍刷新數據。但是,當我們所做的只是添加一個小部件時,這會導致所有數據從服務器重新加載。
$scope.$watch('widgets', function(){
this.widgets = Widget.query(); //get all widgets
});
我猜我這裏尋找的是擴展了可以在這兩個位置被引用,並通過$資源或應用添加到基礎模型定義,而不是一個單獨的實例變量誰將始終更新該類型的任何列表。我只是困惑在這裏,我應該繼續做一個(工廠)PopularWidgetModel和(工廠)CartWidgetModel?看起來很乏味。也許我不太明白this將適用於我的情況。
自一段時間以來,這與我最終做的事情非常接近。我發現你也可以爲多個模型集合添加對象引用,即使這些對象本身不是「模型」,而只是簡單的對象......因此,將業務邏輯委託給「集合模型」而不是嘗試將複雜對象傳遞到集合中。我想這個問題應該被解釋爲一個主要的概念問題。 – FlavorScape