我正在使用Angular和Ionic框架来构建应用程序。我想在后退按钮旁边的标题栏中显示上一个屏幕的标题。像这样:
[ '<| title of previous screen' 'Title of current screen']
我的想法是为每个视图设置一个范围变量,然后我可以在标题条形码中显示。
我将其用作index.html:
<body ng-app="MyApp">
<!-- The nav bar that will be updated as we navigate -->
<nav-bar animation="nav-title-slide-ios7"
type="bar-positive"
back-button-type="button-icon"
back-button-icon="icon icon-back"
back-button-label="{{backButtonLabel}}"
></nav-bar>
<!-- where the content of each page will be rendered -->
<nav-view animation="slide-left-right" back-button-label="{{backButtonLabel}}"></nav-view>
</body>
问题是,范围变量仅在nav-view的上下文中可用,但在nav-bar中不可用。所以变量不会更新。当您使用像“HOME”之类的静态内容替换后退按钮标签时,它确实有效。
知道如何在标题栏中显示上一个屏幕的标题吗?
我已经设置了这个Plunkr来演示:http://plnkr.co/edit/BWsCQ98GAdw0I00pvCCk
答案 0 :(得分:1)
您可以将公共父范围添加到nav-bar
和nav-view
并在其中声明您的变量(使用ng-init,或者更好的是,为此父级单独设置控制器)或仅在$上声明您的变量rootScope。
答案 1 :(得分:0)
另一种选择是使用广播或发射某种类型的历史服务。看看这个:http://motionharvest.com/2013/03/21/passing-arugments-to-on-in-angularjs-from-emit-and-broadcast/