91超碰碰碰碰久久久久久综合_超碰av人澡人澡人澡人澡人掠_国产黄大片在线观看画质优化_txt小说免费全本

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

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

發布時間:2020-08-25 01:30:30 來源:腳本之家 閱讀:137 作者:前端小智 欄目:web開發

1.Ionic3.x 頁面正向傳值

關于正向傳值,上一篇文章里面有講,具體可以看這里:https://www.jb51.net/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 回調的 block
callBackFromB =(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種方法,當然還有其它方法,如果你有更好 的方法,歡迎留言討論,希望本文的內容對大家的學習或者工作具有一定的參考學習價值,如果有疑問大家可以留言交流,謝謝大家對億速云的支持。

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

盐城市| 镇江市| 玉龙| 昌江| 博乐市| 新绛县| 抚宁县| 杨浦区| 新巴尔虎右旗| 清水河县| 赤峰市| 铜梁县| 西城区| 客服| 湖州市| 巴彦淖尔市| 沂源县| 宁城县| 广南县| 西城区| 福安市| 黄陵县| 涪陵区| 万荣县| 固阳县| 新乡县| 隆安县| 普兰县| 汪清县| 孟州市| 洞头县| 东平县| 辉县市| 英德市| 四川省| 六盘水市| 若尔盖县| 儋州市| 海南省| 建宁县| 吉水县|