最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

Ionic2系列之使用DeepLinker實現(xiàn)指定頁面URL

 更新時間:2016年11月21日 17:16:19   作者:yan_xiaodi  
這篇文章主要介紹了Ionic2系列之使用DeepLinker實現(xiàn)指定頁面URL的相關(guān)資料,非常不錯,具有參考借鑒價值,需要的朋友可以參考下

Ionic2使用了近似原生App的頁面導(dǎo)航方式,并不支持Angular2的路由。這種方式在開發(fā)本地App的時候比較方便,但如果要用來開發(fā)純Web頁面就有點問題了,這種情況下Angular2的router可以提供更靈活的配置。比如在首頁是一個Tabs頁面的情況下,如何控制用戶看到的第一項Tab?默認(rèn)情況下都是會導(dǎo)航到第一個Tab,而且地址欄的URL并不會跟隨頁面的切換而變化。好在Ionic2提供了一種類似路由的DeepLinker功能,可以實現(xiàn)以上目的。

DeepLinker與NavController一起工作,但是用戶基本不會直接與這個東西打交道。只有用戶需要對URL進行處理的時候才需要配置這個。使用DeepLinker后,如果NavController push了一個新的頁面,DeepLinker會在配置中尋找匹配的URL設(shè)置并更新URL。

我們的需求場景是這樣的,在微信公眾號的菜單欄有n個菜單,點擊不同的菜單,需要直接導(dǎo)航到我們頁面對應(yīng)的Tab上,而不是讓用戶再去選擇Tab。下面說一下具體做法。

首先新建一個Ionic2項目。目前最新的CLI已經(jīng)升級到了2.1.12,ionic-angular升級到了RC3,強烈建議更新。使用以下命令來創(chuàng)建一個Tabs模板的項目:

ionic start TabsDemo tabs --v2

默認(rèn)會建立有三個Tab頁的項目。主要有4個頁面,一個Tabs是主頁面,其他三個Tab頁分別是home,about,contact。

基本用法

DeepLinker是在IonicModule.forRoot方法中使用,作為第三個參數(shù):

imports: [
IonicModule.forRoot(MyApp, {}, {
links: []
})
]

數(shù)組里的對象是DeepLinkerConfig,配置了URL和頁面的匹配關(guān)系,一般來說是這樣子的:

imports: [
IonicModule.forRoot(MyApp, {}, {
links: [
{ component: HomePage, name: 'Home', segment: 'home' }
]
})
]

也就是說,當(dāng)瀏覽HomePage這個頁面的時候,URL會變成http://examplesite/#/home/home

傳參

有的時候也需要從URL傳遞參數(shù),可以用下面的形式:

links: [
{ component: HomePage, name: 'Home', segment: 'home' }
{ component: DetailPage, name: 'Detail', segment: 'detail/:user' }
]

這樣在DetailPage的ts文件中就可以接收user這個參數(shù),進行處理。需要注意的是,這個參數(shù)應(yīng)該是可以被DeepLinker序列化的,因此建議設(shè)置為一個string或number。

實現(xiàn)跳轉(zhuǎn)到指定Tab

修改app.module.ts文件,將IonicModule.forRoot方法改為如下代碼:

IonicModule.forRoot(MyApp, {}, {
links: [
{ component: TabsPage, name: 'Tabs', segment: 'tabs/:tabId' }
]
})

這里的意思是,給Tabs頁傳一個參數(shù),如http://examplesite/#/tabs/1,這樣就讓App直接跳到第二個Tab。

修改tabs.ts文件,改為如下代碼:

export class TabsPage {
// this tells the tabs component which Pages
// should be each tab's root Page
tab1Root: any = HomePage;
tab2Root: any = AboutPage;
tab3Root: any = ContactPage;
public tabId: number;
public selectTabIndex: number;
constructor(public params: NavParams) {
this.tabId = params.get("tabId");
if(this.tabId != undefined || this.tabId !=null)
{
this.selectTabIndex = this.tabId;
}
}
}

添加了兩個變量,然后通過NavParams取得傳遞過來的參數(shù)并賦值給selectTabIndex。

修改tabs.html,給Tabs組件添加一個綁定:

<ion-tabs selectedIndex={{selectTabIndex}}>

運行ionic serve命令,會自動打開http://localhost:8100/地址,現(xiàn)在打開一個新窗口,輸入http://localhost:8100/#/tabs/1,OK,直接跳到第二個Tab了。打完收工。

默認(rèn)歷史

還有一種情況,如果從其他頁面直接導(dǎo)航到內(nèi)部的頁面,當(dāng)點擊返回的時候,該返回哪個頁面呢?比如從推送通知進到新聞詳情頁面,當(dāng)點擊返回的時候,應(yīng)該返回首頁。所以Ionic2提供了defaultHistory參數(shù),如果頁面歷史堆棧中不存在歷史頁面的時候,就會返回到這個頁面。用法如下:

links: [
{ component: HomePage, name: 'Home', segment: 'home' }
{ component: DetailPage, name: 'Detail', segment: 'detail/:user', defaultHistory: [HomePage] }
]

以上所述是小編給大家介紹的Ionic2系列之使用DeepLinker實現(xiàn)指定頁面URL,希望對大家有所幫助,如果大家有任何疑問請給我留言,小編會及時回復(fù)大家的。在此也非常感謝大家對腳本之家網(wǎng)站的支持!

相關(guān)文章

  • JavaScript正則表達(dá)式的貪婪匹配和非貪婪匹配

    JavaScript正則表達(dá)式的貪婪匹配和非貪婪匹配

    所謂貪婪匹配就是匹配重復(fù)字符是盡可能多的匹配,非貪婪匹配就是盡可能少的匹配,下面通過一個例子給大家分享JavaScript正則表達(dá)式的貪婪匹配和非貪婪匹配,感興趣的朋友參考下吧
    2017-09-09
  • 上傳文件返回的json數(shù)據(jù)會被提示下載問題解決方案

    上傳文件返回的json數(shù)據(jù)會被提示下載問題解決方案

    這篇文章主要介紹了項目中python+js實現(xiàn)的上傳文件返回的json數(shù)據(jù)會被提示下載問題解決方案,需要的朋友可以參考下
    2014-12-12
  • JavaScript之scrollTop、scrollHeight、offsetTop、offsetHeight等屬性學(xué)習(xí)筆記

    JavaScript之scrollTop、scrollHeight、offsetTop、offsetHeight等屬性學(xué)

    這篇文章主要介紹了JavaScript之scrollTop、scrollHeight、offsetTop、offsetHeight等屬性學(xué)習(xí)筆記,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2020-07-07
  • 原生js實現(xiàn)點擊輪播切換圖片

    原生js實現(xiàn)點擊輪播切換圖片

    這篇文章主要為大家詳細(xì)介紹了原生js點擊輪播切換圖片,文中示例代碼介紹的非常詳細(xì),具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2020-02-02
  • 原生JavaScript實現(xiàn)彈幕組件的示例代碼

    原生JavaScript實現(xiàn)彈幕組件的示例代碼

    這篇文章主要介紹了原生JavaScript實現(xiàn)彈幕組件的示例代碼,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2020-10-10
  • 使用ethers.js部署Solidity智能合約的方法

    使用ethers.js部署Solidity智能合約的方法

    Ethers.js則是一個輕量級的web3.js替代品,在本文中,我們將學(xué)習(xí)使用ethers.js部署Solidity智能合約的方法,感興趣的朋友一起看看吧
    2021-10-10
  • 詳解ES6之a(chǎn)sync+await 同步/異步方案

    詳解ES6之a(chǎn)sync+await 同步/異步方案

    這篇文章主要介紹了詳解ES6之a(chǎn)sync+await 同步/異步方案,本文以最簡明的方式來疏通 async + await,有興趣的可以了解下
    2017-09-09
  • js判斷瀏覽器版本以及瀏覽器內(nèi)核的方法

    js判斷瀏覽器版本以及瀏覽器內(nèi)核的方法

    這篇文章主要介紹了js判斷瀏覽器版本以及瀏覽器內(nèi)核的方法,可實現(xiàn)針對各個瀏覽器的判斷,具有一定參考借鑒價值,需要的朋友可以參考下
    2015-01-01
  • 怎樣用Javascript實現(xiàn)策略模式

    怎樣用Javascript實現(xiàn)策略模式

    這篇文章主要介紹了JavaScript設(shè)計模式之策略模式,想學(xué)習(xí)設(shè)計模式的同學(xué),一定要看一下
    2021-04-04
  • js實現(xiàn)仿百度瀑布流的方法

    js實現(xiàn)仿百度瀑布流的方法

    這篇文章主要介紹了js實現(xiàn)仿百度瀑布流的方法,以完整實例形式分析了js仿百度瀑布流的相關(guān)樣式與實現(xiàn)技巧,具有一定參考借鑒價值,需要的朋友可以參考下
    2015-02-02

最新評論

大宁县| 乡城县| 大悟县| 上虞市| 罗源县| 兴隆县| 张掖市| 通道| 尼玛县| 内乡县| 嘉兴市| 清远市| 全州县| 白城市| 简阳市| 阿鲁科尔沁旗| 榆中县| 文登市| 集贤县| 张北县| 鹤峰县| 穆棱市| 天峨县| 岫岩| 怀宁县| 普安县| 新河县| 玉山县| 定安县| 若羌县| 台安县| 汶上县| 三江| 阿拉善盟| 都匀市| 宽城| 兰溪市| 当阳市| 鄂托克前旗| 南江县| 康马县|