我正在尝试尽可能减少我在我正在使用的应用中对$scope
的使用。在这个应用程序中,我无法使用导航栏按钮与ctrl
(使用controllerAs
)一起工作,除非我不使用隔离范围。
CodePen:http://codepen.io/rinogo/pen/GjkPdG
如您所见,使用隔离范围(例如scope: {}
),只有不在导航栏中的按钮才有效。但是,如果我们注释掉scope: {}
并原型继承范围,则所有四个按钮都可以正常工作。
如果我在test()
上设置$scope.$parent
,我可以在导航栏中使用“范围方法”。鉴于我的应用程序的结构,这基本上是$rootScope
(也就是<ion-nav-bar/>
所在的范围),对吗?
似乎<ion-nav-buttons/>
似乎在相关<ion-nav-bar/>
的范围内进行评估,而不是在其定义的范围内进行评估!也许这也解释了为什么ctrl
方法仅适用于继承范围,因为“幕后”ctrl
是通过$scope.ctrl
访问的,对吗?
所以我想我的问题是:
<ion-nav-buttons/>
是否在相关<ion-nav-bar/>
?ctrl.test()
ng-click
<ion-nav-buttons/>
调用Reuse Identifier
的目标(同时保留一个独立的范围)?提前感谢您分享您的专业知识! :)