vue 關於子組件向父組件傳值$emit觸發無效問題

来源:https://www.cnblogs.com/wazy999/archive/2019/11/06/11804115.html
-Advertisement-
Play Games

先貼上代碼 子組件代碼 1 //子組件請求介面,用自己封裝的axios 2 getupdate(){ 3 this.$post({ 4 url:this.$apis.unitupdate, 5 postType:'json' 6 }) 7 .then( () => { 8 this.$emit("g ...


先貼上代碼

子組件代碼

 1 //子組件請求介面,用自己封裝的axios
 2  getupdate(){
 3          this.$post({
 4            url:this.$apis.unitupdate,
 5            postType:'json'
 6          })
 7          .then( () => {
 8           this.$emit("getlist")//成功之後觸發更新列表  
 9          })
10        },
11  this.close()  //關掉彈窗

父組件代碼

//父組件
//在父組件中插入子組件彈窗 getlist是在子組件觸發的事件

<Dialogedit v-if="showdialog" @getlist="getList"> </Dialogedit>
<script>

//請求列表

method:{
getList(){
  this.$get({
    url:this.$apis.drugunit,
    query:this.params
   })
  .then( res => {
    this.mainList = res.data.list
   })
 },
}
</script>

這樣做就會出現一個問題 就是在子組件中,this.$emit觸發不了或者延遲

原因是在觸發this.$emit請求返回需要時間,而在請求過程(因為是非同步所以會先執行下麵的操作),調用了this.close(this.close是定義好的方法)將彈窗關閉,所以導致this.$emit不能返回

只要把this.close放到then裡面就可以了就是請求成功才關閉視窗

 getupdate(){
         this.$post({
           url:this.$apis.unitupdate,
           param:this.formModel,
           postType:'json'
         })
         .then( () => {
           this.$emit("getlist")
           this.close() 
})

這樣就會在關閉視窗前更新列表


您的分享是我們最大的動力!

-Advertisement-
Play Games
更多相關文章
  • 關於 JS this "1. this 與 普通函數" "2. this 與 bind、call、apply" "3. this 與 箭頭函數" "4. this 與 return" + "4.1 返回 引用對象" + "4.2 返回 function對象" + "4.3 返回 數字,值對象" + ...
  • `jsonp是ajax提交的一種格式不會受跨域限制` 一.前端發送 二.後臺接受 ...
  • 先初始化資料庫 const db = wx.cloud.database() 1. 插入操作 // collection('user') 獲取到資料庫中名為 user 的集合 // add 插入操作 db.collection('user').add({ // 要插入的數據 data: { name ...
  • 01 背景 由於導航應用中的地圖渲染、導航等核心功能對性能要求很高,所以高德地圖客戶端中大量功能採用 C++ 實現。隨著業務的飛速發展,僅地圖引擎庫就有40多個模塊,工程配置極其複雜,原有的構建及持續集成技術已無法滿足日益增長的需求變化。 除了以百萬計的代碼行數帶來的複雜度外,高德地圖客戶端中的 C ...
  • async:可選。表示應該立即下載腳本,但不應妨礙頁面中的其他操作,比如下載其他資源或 等待載入其他腳本。只對外部腳本文件有效。 defer:可選。表示腳本可以延遲到文檔完全被解析和顯示之後再執行。只對外部腳本文件有 效。IE7 及更早版本對嵌入腳本也支持這個屬性。 延遲腳本defer HTML 4 ...
  • 調試webpack 1. 摘要 用過構建工具webpack的朋友應該都體會,面對其幾百行的配置內容如大海一小舟,找不到邊。看文檔查百度,對其構建的生命周期看了又看。最終還是很茫然。原因很簡單,構建配置一般都是通過腳手架工具自動生成。看似每天在用,其實接觸很少。直到有一天,發現社區的插件不能滿足需求時 ...
  • JavaScript 的 replace() 方法可以在字元串中用一些字元替換另一些字元,或替換一個與正則表達式匹配的子串。 但是,只輸入字元串的話,僅替換第一個字元,當然也可以用正則表達式來進行全局替換: 那麼,問題來了,如果我用的是變數呢?百度到可以這麼來: 但是,不用 new RegExp 自 ...
  • l - Length changing 改變每頁顯示多少條數據的控制項 f - Filtering input 即時搜索框控制項 t - The Table 表格本身 i - Information 表格相關信息控制項 p - Pagination 分頁控制項 r - pRocessing 載入等待顯示信息 ...
一周排行
    -Advertisement-
    Play Games
  • 基於.NET Framework 4.8 開發的深度學習模型部署測試平臺,提供了YOLO框架的主流系列模型,包括YOLOv8~v9,以及其系列下的Det、Seg、Pose、Obb、Cls等應用場景,同時支持圖像與視頻檢測。模型部署引擎使用的是OpenVINO™、TensorRT、ONNX runti... ...
  • 十年沉澱,重啟開發之路 十年前,我沉浸在開發的海洋中,每日與代碼為伍,與演算法共舞。那時的我,滿懷激情,對技術的追求近乎狂熱。然而,隨著歲月的流逝,生活的忙碌逐漸占據了我的大部分時間,讓我無暇顧及技術的沉澱與積累。 十年間,我經歷了職業生涯的起伏和變遷。從初出茅廬的菜鳥到逐漸嶄露頭角的開發者,我見證了 ...
  • C# 是一種簡單、現代、面向對象和類型安全的編程語言。.NET 是由 Microsoft 創建的開發平臺,平臺包含了語言規範、工具、運行,支持開發各種應用,如Web、移動、桌面等。.NET框架有多個實現,如.NET Framework、.NET Core(及後續的.NET 5+版本),以及社區版本M... ...
  • 前言 本文介紹瞭如何使用三菱提供的MX Component插件實現對三菱PLC軟元件數據的讀寫,記錄了使用電腦模擬,模擬PLC,直至完成測試的詳細流程,並重點介紹了在這個過程中的易錯點,供參考。 用到的軟體: 1. PLC開發編程環境GX Works2,GX Works2下載鏈接 https:// ...
  • 前言 整理這個官方翻譯的系列,原因是網上大部分的 tomcat 版本比較舊,此版本為 v11 最新的版本。 開源項目 從零手寫實現 tomcat minicat 別稱【嗅虎】心有猛虎,輕嗅薔薇。 系列文章 web server apache tomcat11-01-官方文檔入門介紹 web serv ...
  • 1、jQuery介紹 jQuery是什麼 jQuery是一個快速、簡潔的JavaScript框架,是繼Prototype之後又一個優秀的JavaScript代碼庫(或JavaScript框架)。jQuery設計的宗旨是“write Less,Do More”,即倡導寫更少的代碼,做更多的事情。它封裝 ...
  • 前言 之前的文章把js引擎(aardio封裝庫) 微軟開源的js引擎(ChakraCore))寫好了,這篇文章整點js代碼來測一下bug。測試網站:https://fanyi.youdao.com/index.html#/ 逆向思路 逆向思路可以看有道翻譯js逆向(MD5加密,AES加密)附完整源碼 ...
  • 引言 現代的操作系統(Windows,Linux,Mac OS)等都可以同時打開多個軟體(任務),這些軟體在我們的感知上是同時運行的,例如我們可以一邊瀏覽網頁,一邊聽音樂。而CPU執行代碼同一時間只能執行一條,但即使我們的電腦是單核CPU也可以同時運行多個任務,如下圖所示,這是因為我們的 CPU 的 ...
  • 掌握使用Python進行文本英文統計的基本方法,並瞭解如何進一步優化和擴展這些方法,以應對更複雜的文本分析任務。 ...
  • 背景 Redis多數據源常見的場景: 分區數據處理:當數據量增長時,單個Redis實例可能無法處理所有的數據。通過使用多個Redis數據源,可以將數據分區存儲在不同的實例中,使得數據處理更加高效。 多租戶應用程式:對於多租戶應用程式,每個租戶可以擁有自己的Redis數據源,以確保數據隔離和安全性。 ...