国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 編程 > JavaScript > 正文

Angular 4.x+Ionic3踩坑之Ionic3.x pop反向傳值詳解

2019-11-19 14:11:00
字體:
來源:轉載
供稿:網友

1.Ionic3.x 頁面正向傳值

關于正向傳值,上一篇文章里面有講,具體可以看這里://m.survivalescaperooms.com/article/136302.htm

2.Ionic3.x 頁面 pop反向傳值,主要有兩種方式

     1 .利用ES6提供 Promise 對象

     2 利用Ionic3.x提供Event對象,觀察者模式(publish/subscribe)

1)利用ES6提供 Promise 對象

這邊假設有兩個頁面A頁面, B頁面, 情景如下,A跳轉B頁面,在B頁面返回A頁面需要給A頁面選回的值。

A頁面代碼

html內容

<button (tap)="goToBPage()">跳轉到B頁面</button>

ts 內容:

import BPage from './BPage'export class APage{constructor(public navCtrl: NavController, public navParams: NavParams) {}// 用于pop 回調的 blockcallBackFromB =(params) => { return new Promise((resolve, reject) => { if(params){  resolve('成功取到B頁面返回的參數');  console.log('B頁面參數為: '+ params); }else{  reject(‘取回B頁面數據失敗') } }); } goToBPage (){ this.navCtrl.push(BPage, { callback: this.callBackFromB }) }}

備注:Promise是由Es6提供的一個對象,new一個對象,有兩個回調函數,一個是resove,一個是reject,resove是執行成功的回調,也就是我們調用 then執行的方法, reject是執行失敗的回調,對應 是調用 catch方法 ,現在es7新出一async和await,async是對Promise的進一步封裝,詳情可具體看官方文檔!

B頁面代碼

ts 內容:

constructor(public navCtrl: NavController, public navParams: NavParams) {// 獲取對面A傳過來的回調方法 this.callback = this.navParams.get("callback") } goBack(){ let param = '我是要給A頁面數據' this.callback(param).then(()=>{ // pop返回方法 this.navCtrl.pop(); }); }

1)利用Ionic3.x提供Event對象,觀察者模式(publish/subscribe)

event對象主要有3個方法

1.發布publish(topic, eventData)

`參數一是發布事件名字,第二個參數就是要發送數據,其實還可以傳送第三,第四...等,都 是可以傳送數據的

2.訂閱 subscribe(topic, handler)

參數一是要接收的事件鋁管,第二個參數代表發布時傳送的參數,如果發布有傳第三個參數,同樣的訂閱的第三個參數就是對應的發布的第三個參數,以此類推....`

3.取消訂閱 unsubscribe(topic, handler)

參數一是要取消訂閱的事件的名稱,第二是一個回調函數,返回值:如果被移除成功,返回true
實現反向傳值代碼如下

A頁面代碼

ts代碼

 goToBPage(){ this.events.subscribe('bevents', (params) => {  // 接收B頁面發布的數據  console.log('接收數據為: '+ paramsVar);  // 取消訂閱  this.events.unsubscribe('bevents');  }) this.navCtrl.push(BPage); }

B頁面代碼

ts代碼

goBack(){ this.navCtrl.pop().then(() => { // 發布 bevents事件 this.events.publish('bevents', '我是B頁面數據'); });}

總結

以上主要介紹反向傳值的2種方法,當然還有其它方法,如果你有更好 的方法,歡迎留言討論,希望本文的內容對大家的學習或者工作具有一定的參考學習價值,如果有疑問大家可以留言交流,謝謝大家對武林網的支持。

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 库伦旗| 浦北县| 蒙城县| 邵武市| 南通市| 漳州市| 凤阳县| 济源市| 磐石市| 广平县| 吉林市| 高唐县| 花莲县| 沁源县| 尉犁县| 百色市| 镶黄旗| 班玛县| 富顺县| 民权县| 绥滨县| 油尖旺区| 达孜县| 宁安市| 崇州市| 南江县| 乌拉特后旗| 黄浦区| 嘉定区| 循化| 河间市| 静宁县| 垣曲县| 阿拉善左旗| 通州市| 建德市| 伊川县| 芦溪县| 云南省| 扶风县| 乃东县|