天天看點

Ionic javascript Api | ion-view 視圖的生命周期及事件集合ion-view

ion-view

一個容器包含内容視圖和任何導航以及頁眉的資訊。當一個視圖進入和存在他的父 

ionNavView

, 該視圖同樣會發出資訊,例如他的标題, 是不是應該存在傳回按鈕, 是不是相應的 

ionNavBar

應該存在, 應該用什麼樣的轉場動畫, 以及運動的軌迹。

視圖被緩存下來來提高性能. 當你跳出一個視圖, 他的元素被儲存在Dom中并且他的作用範圍也不再 

$watch

 的作用域内. 當我們通路到一個已經被緩存了的視圖, 他的scope有重新回到作用于内, 并且那留在Dom中的元素也跟着被激活了.這也是可以被關閉的活着限制緩存視圖的最大數量在TODO:ionic.directive:ionicConfig,視圖

$state

 配置中, 或者視圖本身的一個屬性設定,看例子吧.

使用方法

下面的例子是我們的頁面會加一個有 “My Page” 作為标題的

ionNavBar

 容器。

1
2
3
4
5
6
7
8
9      
//這裡添加代碼……
<ion-nav-bar></ion-nav-bar>
<ion-nav-view>
  <ion-view view-title="My Page">
    <ion-content>
      Hello!
    </ion-content>
  </ion-view>
</ion-nav-view>
           

視圖生命周期及事件集(Beat14亮點)

視圖可以被緩存意味着Controllers通常隻需要加載一次,這勢必會影響到你controller的邏輯了。去差別一個視圖是否已經通路或離開,時間是不是已經被添加來調用視圖的作用域 。這些事件也包含視圖的資料,比如标題和傳回按鈕是不是應該顯示。也包含轉換資料,比如動畫的轉換類型和方向将被使用或已經被使用的。

$ionicView.loaded

視圖已經被加載了。這事件隻發生一次當視圖被建立并添加到Dom中。當跳出頁面并且被緩存了的話,再次通路這個頁面時這個時間将不會被激活。Loaded事件是個好方式讓你為這個視圖設定你的代碼; 然而,他并不是我們推薦的時間去監聽視圖被激活。

$ionicView.enter

進入視圖并被激活。這事件被激活來判斷這個視圖是第一個加載還是被緩存了的。

$ionicView.leave

離開這個視圖并且不是活動頁面。調用這個事件判斷應該被緩存還是摧毀。

$ionicView.beforeEnter

視圖即将被打開變成活動頁面。

$ionicView.beforeLeave

視圖将被關閉并且不是活動頁面。

$ionicView.afterEnter

進入視圖并是目前的活動頁面

$ionicView.afterLeave

已經離開視圖,并成為非激活頁面

$ionicView.unloaded

視圖的Controller已經被摧毀并且他的頁面元素也從Dom中移除

緩存

可以通過很方式開起和關閉緩存。通常, Ionic 會緩存最多 10 視圖。你可以選擇禁用緩存在一個獨立的配置上,或由全局配置. 請參照在 

ionNavView

中檢視更多的緩存資訊。

API

Attr Type Details
view-title (optional)

string

一個顯示在父标題 

ionNavBar

上的文本标題。作為一個HTML的标題,例如一個圖檔, 參照

ionNavTitle

.
cache-view (optional)

boolean

設定是否緩存。請看緩存 

ionNavView

 更多資訊. 預設 

true

hide-back-button (optional)

boolean

預設是否隐藏傳回按鈕父 

ionNavBar

 。
hide-nav-bar (optional)