使用Angular在视图标记之前显示范围变量

时间:2014-01-14 12:16:32

标签: angularjs angularjs-scope

我正在使用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

2 个答案:

答案 0 :(得分:1)

您可以将公共父范围添加到nav-barnav-view并在其中声明您的变量(使用ng-init,或者更好的是,为此父级单独设置控制器)或仅在$上声明您的变量rootScope。

答案 1 :(得分:0)

另一种选择是使用广播或发射某种类型的历史服务。看看这个:http://motionharvest.com/2013/03/21/passing-arugments-to-on-in-angularjs-from-emit-and-broadcast/