ui-router |解决依赖|强制重装|强制刷新

时间:2015-12-28 14:33:40

标签: angularjs ionic-framework ionic angular-ui-router

我的app.js中有这个:

Similar expression comparison

我在tabs.html中有这个:

.state('tab.interview', {
    url: '/interview/:survey_id',
    views: {
      'tab.interview': {
        templateUrl: 'templates/tab.interview.html',
        controller: 'interviewController'
      }
    },
    resolve: {
      duh: function() {
        console.log('HOHOHO');
        return new Date();
      }
    }
  })

您可以看到我已经为选项卡提供了以下选项:ui-sref-opts =" {reload:true,inherit:false}" 。我认为它会强制重新加载控制器,以及它的解析依赖性。

我有一个像这样的控制器:

<ion-tabs class="tabs-icon-top tabs-color-active-positive">

  <ion-tab title="Organizer" icon-off="ion-ios-list-outline" icon-on="ion-ios-list" ui-sref="tab.survey">
    <ion-nav-view name="tab.survey"></ion-nav-view>
  </ion-tab>

  <ion-tab title="Interview" icon-off="ion-chatbox" icon-on="ion-chatbox-working" ui-sref="tab.interview" ui-sref-opts="{reload: true, inherit: false}">
    <ion-nav-view name="tab.interview"></ion-nav-view>
  </ion-tab>
</ion-tabs>

我在控制台中看到的是:

  1. 每次切换到该标签时都会打印HOHOHO。这告诉我&#34; duh&#34;的新实例依赖关系已经创建。

  2. 但是 ... ionic.enter中的console.log给了我相同的值(_first_time_我加载该选项卡的时间)。例如:2015年12月28日星期一08:26:02 GMT-0600。永远是同样的价值。好像新创建的duh(Date)实例没有(重新)绑定到控制器中的那个变量。

  3. 我哪里做错了?每次切换到该选项卡时,我的应用程序都必须刷新duh(特别是当$ state.go中的&#34; reload&#34;选项设置为true时)。

    提前致谢, 拉嘎

1 个答案:

答案 0 :(得分:1)

您可以禁用给定状态的缓存:

.state('tab.interview', {
    cache: false,
    url: '/interview/:survey_id',
    views: {
      'tab.interview': {
        templateUrl: 'templates/tab.interview.html',
        controller: 'interviewController'
      }
    },
    resolve: {
      duh: function() {
        console.log('HOHOHO');
        return new Date();
      }
    }
  })