保存按钮我写在角业务线的应用程序,和我所遇到的情景我不能完全找到一个不错的解决方案。全球的角度
我想展现的一面旗帜,说明用户有未保存的更改,而他也救不了他们。所以在我的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