2015-12-28 18 views
1

我有這個在我的app.js:ui-router |解決依賴關係|強制重新加載|力刷新

.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(); 
     } 
    } 
    }) 

我有這個在我的tabs.html:

<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> 

你可以看到,我已經有這個選項標籤:UI -sref-opts =「{reload:true,inherit:false}」。我認爲它會強制重新加載控制器,以及其解決方案依賴關係。

我有一個這樣的控制器:

$scope.$on('$ionicView.enter', function() { 
    console.log('.....'); 
    console.log(duh); 
    console.log('.....'); 
}); 

我在控制檯中我看到的是:

  1. HOHOHO會打印每次我切換到該標籤。這告訴我創建了「duh」依賴關係的新實例。

  2. 但是 ... ionic.enter中的console.log給了我相同的值(_first_time_我加載該選項卡的時間)。例如:星期一Dec 28 2015 08:26:02 GMT-0600。始終如此相同的價值。就好像新創建的duh(Date)實例沒有(重新)綁定到控制器中的變量。

我在哪裏做錯了?對於我的應用程序來說,每次切換到該選項卡時都會刷新Duh(特別是當$ state.go中的「reload」選項設置爲true時)。

由於提前, 拉嘎

回答

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(); 
     } 
    } 
    }) 
+1

由於它的工作原理。 –