保存按鈕我寫在角業務線的應用程序,和我所遇到的情景我不能完全找到一個不錯的解決方案。全球的角度
我想展現的一面旗幟,說明用戶有未保存的更改,而他也救不了他們。所以在我的index.html,我有(使用引導程序)以下標記:
<div class="alert alert-info" role="alert" style="margin: 20px;">
<button class="btn btn-info" ng-click="<CurrentController.Save()>" ng-show="<HasChanges>">Save</button>
<span>You have unsaved changes. Use the button here to save them.</span>
</div>
現在,我有我的當前視圖控制器,以及一個全球性的AppController。
使用原型繼承,我的控制器包含的功能來追蹤變化的用戶進行,並且能夠執行任何必要行動,以實現我想要的功能。
我的問題是:
由於我rootScope不知道孩子的控制器,做什麼我需要做的是能結合NG-點擊NG出現在我上面的代碼。換句話說,index.html將如何知道當前活動的控制器?
我想過broadcast
/emit
,但不知何故,這對我來說似乎並不純。我也有關於讓子控制器使用$ rootScope註冊自己,但如果我引入錯誤,這可能會導致我保存在舊控制器中。
,這是什麼最好的做法是什麼?我的設計有什麼根本錯誤?
廣播/ EMIT比扯皮潛在的深原型繼承乾淨多了。繼承也意味着耦合每個控制器的數據結構。全局保存按鈕應該只是廣播一個事件,每個單獨的控制器可以根據自己的情況做出反應。 – user2943490 2014-12-04 02:54:16
@ user2943490:但是,無論控制器是否髒污,您將如何傳播?我不介意說出來。如果沒有控制器繼承,我會在哪裏放置所有控制器通用的代碼? – 2014-12-04 06:49:55
如果你有共同的控制器代碼,mixin通常是更乾淨的模式。見http://stackoverflow.com/questions/16539999/angular-extending-controller – user2943490 2014-12-04 08:21:20