標籤: USB CONNECTOR

  • 緬甸小象成功獲救 凸顯盜獵危機仍在

    摘錄自2019年10月2日自由時報報導

    據《路透》報導,緬甸Wingabaw大象庇護營上個月在該國西南部森林,拯救了一隻誤入盜獵者陷阱的4個月大幼象,她的左前腿遭陷阱夾傷,父母推測也慘遭盜獵者殺害。

    現在這隻被命名為艾雅‧賽恩(Ayeyar Sein),雖然腳上還戴著以竹子和繃帶做成的夾板,但在定期清理傷口之下,賽恩的恢復狀況良好,食慾也逐漸恢復正常。

    據專家2018年統計報告指出,目前緬甸僅存1400至2000頭野生象,並有5000頭大象遭囚禁,凸顯出緬甸所面臨的盜獵危機。

    本站聲明:網站內容來源環境資訊中心https://e-info.org.tw/,如有侵權,請聯繫我們,我們將及時處理

    【其他文章推薦】

    ※帶您來了解什麼是 USB CONNECTOR  ?

    ※自行創業缺乏曝光? 網頁設計幫您第一時間規劃公司的形象門面

    ※如何讓商品強力曝光呢? 網頁設計公司幫您建置最吸引人的網站,提高曝光率!

    ※綠能、環保無空污,成為電動車最新代名詞,目前市場使用率逐漸普及化

    ※廣告預算用在刀口上,台北網頁設計公司幫您達到更多曝光效益

    ※教你寫出一流的銷售文案?

  • 氣候變遷衝擊農民生計 菲青年下鄉助行銷轉型

    摘錄自2019年10月2日中央社報導

    菲律賓存在乾季和雨季,但氣候變遷改變降雨季節,衝擊農民生計。為此,25名菲律賓青年創業家組成的「根源聯合會」(Roots Collective)與「和平與公平基金會」(Peace and Equity Foundation)合作,即日起到6日在位於大馬尼拉「波尼法西奧堡環球城」(BGC)的商場展售在地農民、手工藝工作者與社會企業合作開發的織品、包包、鞋子、食品及日用品。

    青年創業家佛蘭查(John Francia)與夥伴創立「編織工藝」(Woven Crafts),行銷販售來自菲律賓東部薩馬省(Samar)巴席鎮(Basey)的織品,並開發出筆電包、手拿包、化妝包等新產品。佛蘭查說,他們正把觸角延伸到民答那峨島和2017年受叛亂襲擊的馬拉韋市(Marawi)等地,希望開發新的工藝素材,幫助更多菲律賓貧困社區提高收入、脫離貧窮。

    本站聲明:網站內容來源環境資訊中心https://e-info.org.tw/,如有侵權,請聯繫我們,我們將及時處理

    【其他文章推薦】

    ※為什麼 USB CONNECTOR 是電子產業重要的元件?

    網頁設計一頭霧水該從何著手呢? 台北網頁設計公司幫您輕鬆架站!

    ※台北網頁設計公司全省服務真心推薦

    ※想知道最厲害的網頁設計公司"嚨底家"!

    新北清潔公司,居家、辦公、裝潢細清專業服務

    ※推薦評價好的iphone維修中心

  • 布袋蓮洗刷惡名 成為肯亞再生能源金礦

    摘錄自2019年9月30日聯合報報導

    布袋蓮為原產於南美洲的水生植物,20世紀初首次出現於非洲。自從布袋蓮開始在1900年從南非開普敦開始向外蔓延,並開始堵塞主要水壩和河流後,科學家稱它為「世界最嚴重的水生雜草」。布袋蓮常因阻塞重要水道且難以根除而遭到敵視,但它在非洲肯亞卻有助提供更乾淨的能源,進而保護居民健康。

    英國衛報報導,在肯亞基蘇木郡(Kisumu)維多利亞湖的Winam灣岸邊附近,大量布袋蓮腐爛在湖邊,但那些逐漸腐壞的蠟質葉片卻是可再生能源的金礦。事實證明,布袋蓮不僅繁殖能力出眾,它的葉子還含有高比例的碳和氮。早期研究預測,僅約4公斤的乾燥布袋蓮,就能滿足一個大家庭的日常能源需求。

    肯亞學者證實,布袋蓮能將有機物轉化為甲烷(沼氣的主要成分)、二氧化碳及水。因為沼氣容易燃燒,一般天然氣能做的事情它都能辦到,像是煮飯、加熱或作為動力來源。Dunga村2018年獲贈兩個沼氣池,能為村莊60%人口提供服務,現在肯亞約有50個沼氣池。

    本站聲明:網站內容來源環境資訊中心https://e-info.org.tw/,如有侵權,請聯繫我們,我們將及時處理

    【其他文章推薦】

    USB CONNECTOR掌控什麼技術要點? 帶您認識其相關發展及效能

    台北網頁設計公司這麼多該如何選擇?

    ※智慧手機時代的來臨,RWD網頁設計為架站首選

    ※評比南投搬家公司費用收費行情懶人包大公開

    ※幫你省時又省力,新北清潔一流服務好口碑

    ※回頭車貨運收費標準

  • 航向公海 海洋吸塵器首次成功收集垃圾

    環境資訊中心綜合外電;姜唯 編譯;林大利 審校

    本站聲明:網站內容來源環境資訊中心https://e-info.org.tw/,如有侵權,請聯繫我們,我們將及時處理

    【其他文章推薦】

    ※帶您來了解什麼是 USB CONNECTOR  ?

    ※自行創業缺乏曝光? 網頁設計幫您第一時間規劃公司的形象門面

    ※如何讓商品強力曝光呢? 網頁設計公司幫您建置最吸引人的網站,提高曝光率!

    ※綠能、環保無空污,成為電動車最新代名詞,目前市場使用率逐漸普及化

    ※廣告預算用在刀口上,台北網頁設計公司幫您達到更多曝光效益

    ※教你寫出一流的銷售文案?

  • 萬安灘因探勘石油與中對峙 越南學者籲提交聯合國安理會

    摘錄自2019年10月7日中央社報導

    中國7月起派遣探勘船「海洋地質8號」等船隻進入南沙群島最西側淺灘萬安灘(Vanguard Bank)探勘石油,越南將萬安灘稱為思政灘(Tu Chinh),聲稱依據聯合國海洋法公約,萬安灘位於越南200海里專屬經濟區內,出動相關船隻阻擾,與中方船隻發生對峙,越方並多次向中方抗議。兩國對峙數月,越南法律政策與發展研究所6日舉行座談會,與會學者建議越南將中國近期在萬安灘海域所採取威脅和武力行為提交聯合國安全理事會。

    學者表示,中國近年來企圖將整個南海變成「家裡水池」,對東沙、西沙、中沙和南沙四大群島提出主權聲索,其中主張在與越南有爭議的西沙和南沙兩個群島設立專屬經濟區和大陸棚,目的是將沒有爭議海域變成有爭議海域,從而提出「共同資源開採」的聲索。

    越南法律政策與發展研究所所長黃玉交(HoangNgoc Giao)表示,中國近年來在南海採取的行為,尤其是近期在歸屬越南專屬經濟區的萬安灘海域的既威脅又使用武力的行為,已違反聯合國憲章;國際社會反應也顯示,這是威脅區域和平、安全以及違反國際法基本原則的行為,中國不僅侵犯越南海域,還侵犯馬來西亞和菲律賓海域。越南應趁著擔任聯合國安理會2020年至2021年非常任理事國之際,將中國在南海威脅和武力行為向聯合國安理會提交。

    本站聲明:網站內容來源環境資訊中心https://e-info.org.tw/,如有侵權,請聯繫我們,我們將及時處理

    【其他文章推薦】

    ※為什麼 USB CONNECTOR 是電子產業重要的元件?

    網頁設計一頭霧水該從何著手呢? 台北網頁設計公司幫您輕鬆架站!

    ※台北網頁設計公司全省服務真心推薦

    ※想知道最厲害的網頁設計公司"嚨底家"!

    新北清潔公司,居家、辦公、裝潢細清專業服務

    ※推薦評價好的iphone維修中心

  • 日本岩手、宮城水產品可望出口 歐盟:最快2019年內解禁

    摘錄自2019年10月05日東森新聞日本報導

    日本2011年4月發生9.0地震,福島第一核電站因此放射性物質外洩,成為嚴重的核災事故,讓各國紛紛對日本核災地區設下禁令,不願讓汙染物入國。如今,日本政府表示,歐盟在今年內將會放寬對日本食品的進口限制。

    綜合日媒報導,日本執政黨相關人士5日指出,歐盟委員會主席容克(Jean-Claude Juncker)於之前的布魯塞爾會談時向日本首相安倍晉三透露,歐盟很快就會放寬對日本食品的進口限制,尤其是取消岩手、宮城縣的水產品進口禁令。

    事實上,歐盟早在2017年就取消對福島縣大米的禁令,不過日本仍然致力於說服其他國家,包括歐盟、中國、韓國及美國等,希望解除福島食品的禁令,也強調日本出口食品時都會通過嚴格檢驗,出口品絕對安全。

    本站聲明:網站內容來源環境資訊中心https://e-info.org.tw/,如有侵權,請聯繫我們,我們將及時處理

    【其他文章推薦】

    USB CONNECTOR掌控什麼技術要點? 帶您認識其相關發展及效能

    台北網頁設計公司這麼多該如何選擇?

    ※智慧手機時代的來臨,RWD網頁設計為架站首選

    ※評比南投搬家公司費用收費行情懶人包大公開

    ※幫你省時又省力,新北清潔一流服務好口碑

    ※回頭車貨運收費標準

  • Jmeter系列(30)- 詳解 JDBC Request

    Jmeter系列(30)- 詳解 JDBC Request

    如果你想從頭學習Jmeter,可以看看這個系列的文章哦

    https://www.cnblogs.com/poloyy/category/1746599.html

     

    前言

    • JDBC Request 主要是向數據庫發送一個 JDBC 請求(sql 語句),並獲取返回的數據集
    • 它需要和數據庫連接池配置(JDBC Connection Configuration)一起使用,可參考此篇博文:https://www.cnblogs.com/poloyy/p/13182706.html

     

    JDBC Request

     

    JDBC Request 界面介紹

     

    字段含義

    字段 含義

    Variable Name Bound to Pool

    數據庫連接池配置的名稱

    Query Type

    sql 語句的類型

    SQL Query

    • sql 語句
    • 語句結尾不需要添加 ; 
    • 變量用 ? 佔位

    Parameter values

    需要傳遞的變量值,多個變量用 , 分隔

    Parameter types

    變量類型

    Variable Names

    • 保存sql語句返回的數據和返回數據的總行數
    • 用 , 分隔
    • 跳過列用空

    Result Variable Name

    一個 Object 變量存儲所有返回值

    Query timeout(s)

    超時時間;默認0,代表無限時間

    Limit ResultSet

    和 limit 類似作用,限制 sql 語句返回結果集的行數

    Handle ResultSet

    如何定義 callable statements 返回的結果集;默認是存儲為字符串

    後續通過各種栗子來深入理解常用字段的含義

     

    舉栗子的前提

    需要自己找一個有數據庫的數據來練手哦!這裏拿的表數據如下哈

     

    只有 sql 語句的栗子

    JDBC Request

    沒啥特別的,平時 sql 怎麼寫,這裏就怎麼寫

     

    運行結果

     

    參數化的栗子

    JDBC Request

     

    運行結果

     

    知識點

    • 有幾個問號,Parameter value、Parameter type 填寫值的數量要保持一致,用,分隔
    • 問號其實是佔位符,如果學過編程的童鞋應該也知道這種寫法,可以避免 SQL 注入的問題
    • sql 中使用佔位符時,Query Type 必須選擇 Prepared Select Statement 或者 Prepared Update Statement 
    • 我們可以用 Jmeter 變量去賦值,看下面栗子

     

    參數化+變量的栗子

    JDBC Request

     

    運行結果

     

    知識點

    • 如果在 sql 語句中使用變量,且是字符串類型,需要加上引號(前提是變量值沒有加引號),如 ${name} 
    • 如果在 Parameter values 中使用變量,且是字符串類型,不需要加上引號,只需要在 Parameter types 里寫明為 varchar 即可

     

    使用 Variable Names 的栗子

    結構樹

     

    JDBC Request

    添加一個 Debug Sampler 就知道這個字段有什麼作用了

     

    JDBC Request 運行結果

     

    調試取樣器運行結果

     

    知識點

    • mysql:數據庫連接池對象
    • a_#、b_#、c_#、d_#:代錶行數
    • a_1:第 1 行、第 1 列
    • b_2:第 2 行、第 2 列
    • c_3:第 3 行、第 3 列
    • d_3:第 3 行、第 4 列
    • 以此類推….
    • 一般如果 HTTP 請求需要用到 sql 查出來的數據的話,就會用到 Variable names 這個字段

     

    使用 Result variable name 的栗子

    JDBC Request

     

    Debug Sampler  運行結果

     

    知識點

    該變量是個數組,每一個元素代表一條記錄

     

    重點

    關於通過 Variable names、Result variable name 獲取到的值如何提取,我們將在下一篇文章中詳細講解

     

    使用 Limit ResultSet 的栗子

    JDBC Request

     

     

    運行結果

     

    知識點

    • Limit ResultSet 是對 sql 語句返回的結果集限制行數
    •  limit 10 限制只返回了 10 條數據,然後 Limit ResultSet = 6 限制結果集最終只返回 6 條數據

     

      本站聲明:網站內容來源於博客園,如有侵權,請聯繫我們,我們將及時處理

    【其他文章推薦】

    ※帶您來了解什麼是 USB CONNECTOR  ?

    ※自行創業缺乏曝光? 網頁設計幫您第一時間規劃公司的形象門面

    ※如何讓商品強力曝光呢? 網頁設計公司幫您建置最吸引人的網站,提高曝光率!

    ※綠能、環保無空污,成為電動車最新代名詞,目前市場使用率逐漸普及化

    ※廣告預算用在刀口上,台北網頁設計公司幫您達到更多曝光效益

    ※教你寫出一流的銷售文案?

  • Halcon斑點分析BlobAnalysis解析

    Halcon斑點分析BlobAnalysis解析

    斑點分析的算法非常簡單:在圖像中,相關對象的像素(也稱為前景)通過其灰度值來識別。例如,圖中示例显示了液體中的組織顆粒。這些粒子是明亮的,液體(背景)是暗的。通過選擇明亮的像素(閾值),可以很容易檢測到顆粒。在許多應用中,暗像素和亮像素的簡單條件不再成立,但結果相同可以通過額外的預處理或像素選擇/分組的替代方法來實現。

    在這種情況下,斑點分析的優點是HALCON提供了大量算子使其具有極大的靈活性。此外,這些方法通常具有很高的性能。斑點分析也可以與許多其他視覺任務相結合,例如作為預處理步驟,靈活地生成交互區域。

    基本概念

    斑點分析主要包括三個部分:

    1. 獲取圖像

    2. 分割圖像

      採集圖像后,接下來的任務是選擇前景像素。這也稱為分割。結果
      在HALCON中通常將此過程為Blob(二進制大對象),數據類型為區域(a region)。

    3. 提取目標特徵

      在最後一步中,將計算出諸如面積(像素數),重心或方向之類的特徵

    該基本概念的一個示例是以下程序,該程序屬於上述示例。在此,從文件中獲取圖像。使用閾值(threshold)選擇大於120的所有像素。然後,引入了一個不太明顯的步驟:算子連接(connection)將所有亮像素的集合分離為所謂的連接組件。此步驟的效果是我們將劃分出多個區域,而不是閾值(threshold)返回的單個區域。該程序的最後一步是一些功能的計算。在此,算子area_center確定了大小(像素數)和重心。請注意area_center返回了三個值(每個參數有一個值)。

    read_image (Image, 'particle')
    threshold (Image, BrightPixels, 120, 255)
    connection (BrightPixels, Particles)
    area_center (Particles, Area, Row, Column)
    

    擴展概念

    在許多情況下,斑點分析將比上述示例更高級。原因是混亂或不均勻的照明。此外,經常需要進行后處理,例如將元素特徵轉換為真實世界單位或結果可視化。

    使用RIO(Region Of Interest)

    可以通過使用感興趣區域來加快斑點分析。搜索的斑點區域被限制越多。搜索將更快更強大。

    對齊RIO或圖像

    在某些應用中,關注區域必須相對於另一個對象對齊。或者圖像本身可以對齊,例如通過旋轉或裁剪。

    校正圖像

    與對齊類似,可能需要校正圖像,例如消除鏡頭畸變或轉換圖像的參考點。

    預處理圖像(過濾)

    下一個重要部分是圖像的預處理。在這裏,像mean_image或gauss_filter這樣的運算符可用於消除噪音。一個快速但不太完美的替代方案是binomial_filter。運算符middle_image對於抑制小斑點或細線很有用。算子anisotropic_diffusion(各向異性擴散)對保留邊緣的平滑很有用,最後使用fill_interlace消除由隔行交錯相機(攝像機視頻流圖像)引起的缺陷

    提取分割參數

    代替使用固定的閾值,可以為每個圖像動態提取它們。例如具有多個峰值的灰度值直方圖,每個對象類別一個。在這裏,您可以使用算子gray_histo_abs和histo_to_thresh。作為高級替代方案,可以將算子intensity與參考圖像結合使用,僅適用於背景:在設置過程中,將確定背景區域的平均灰度值。如果平均灰度值已更改,則可以相應調整閾值。

    分割圖像

    對於分割,可以使用各種方法。最簡單的方法是threshold(閾值),指定一個屬於前景對象的值範圍。另一個非常常見的方法是dyn_threshold。在此,第二張圖像將作為參考圖像。通過這種方法,使用局部閾值而不是全局閾值。這些局部閾值存儲在參考圖像中。可以通過拍攝空背景圖片將其設為靜態作為參考圖像,也可以使用平滑濾鏡(例如mean_image)

    處理區域

    一旦斑點區域被分割。通常需要對其進行修改,例如,通過抑制小區域,給定方向或接近其他區域的區域。在這種情況下,形態算子open_circle和opening_rectangle通常可用於抑制噪聲,closeing_circle和closing-rectanglel填補空白。可以使用select_shape,select_shape_std和select-proto-proto選擇具有特定功能的斑點。

    特徵提取

    最終處理時,將提取斑點的特徵,所需功能的類型取決於應用程序。類型列表可以在參考手冊的“Regions/Features”和”Image/Features”中找到。

    將結果轉換為世界坐標

    諸如面積或重心之類的要素通常必須轉換為世界坐標。這可以通過HALCON相機
    校準實現。

    可視化結果

    最後,你可能要显示圖像的斑點(區域)和特徵。

    靈感來源於Halcon官方文檔

    本站聲明:網站內容來源於博客園,如有侵權,請聯繫我們,我們將及時處理

    【其他文章推薦】

    ※為什麼 USB CONNECTOR 是電子產業重要的元件?

    網頁設計一頭霧水該從何著手呢? 台北網頁設計公司幫您輕鬆架站!

    ※台北網頁設計公司全省服務真心推薦

    ※想知道最厲害的網頁設計公司"嚨底家"!

    新北清潔公司,居家、辦公、裝潢細清專業服務

    ※推薦評價好的iphone維修中心

  • LeetCode 80,不使用外部空間的情況下對有序數組去重

    LeetCode 80,不使用外部空間的情況下對有序數組去重

    本文始發於個人公眾號:TechFlow,原創不易,求個關注

    今天是LeetCode專題的第49篇文章,我們一起來看LeetCode的第80題,有序數組去重II(Remove Duplicates from Sorted Array II)。

    這題的官方難度是Medium,通過率是43.3%,點贊1104,反對690。這題的通過率有一點點高,然後點贊比也不是很高。說明這題偏容易,並且大家的評價偏低。也的確如此,我個人覺得,大家評價不好的主要原因還是這題偏容易了一些。

    題面

    其實從題目的標題當中我們已經可以得到很多信息了,實際上也的確如此,這題的題面和標題八九不離十,需要我們對一個有序的數組進行去重。不過去重的條件是最多允許一個元素出現兩次,也就是要將多餘的元素去掉。並且題目還限制了需要我們在原數組進行操作,對於空間複雜度的要求是。由於我們去除了元素之後會帶來數組長度的變化,所以我們最後需要返回完成之後數組的長度。

    這是一種常規的做法,在C++以及一些古老的語言當中數組是不能變更長度的。我們想要在原數組上刪除數據,只能將要刪除的數據移動到數組末尾,然後返回變更之後的數組長度。這樣下游就通過返回的數組長度得知變更之後的數量變化。由於新晉的一些語言,比如Java、Python都支持數組長度變動,所以很少在這些語言的代碼當中看到這樣的用法了。

    樣例

    Given nums = [0,0,1,1,1,1,2,3,3],
    
    Your function should return length = 7, with the first seven elements of nums being modified to 0, 0, 1, 1, 2, 3 and 3 respectively.
    
    It doesn't matter what values are set beyond the returned length. 

    在這個樣例當中,由於1出現了4次,所以我們需要刪除掉2個1,那麼刪除之後的數組長度也會減少2,所以我們需要返回7,表示刪除之後的新的數組的有效長度是7。並且保證原數組當中前5個元素是[0, 0, 1, 1, 2, 3]

    題解

    刪除重複的元素本身並不複雜,唯一麻煩的是我們怎麼在不引入額外存儲的情況下完成這一點。如果你能抓住數組是有序的這一點,應該很容易想通:既然數組是有序的,那麼相同的元素必然排在一起。

    既然相同的元素排在一起,那麼我們可以利用一個變量存儲當前元素出現的次數。如果遇到不同的元素,則將次數置為1。這樣我們就可以判斷出究竟哪些元素需要刪除,哪些元素需要保留了。

    但是這就又引入了另外一個問題,我們怎麼來刪除這些重複的元素呢?因為我們不能引入額外的數組,需要在當前數組上完成。我們可以先假設沒有這個限制,我們會怎麼做?

    new_nums = []
    cur = None
    for i in range(n):
        if cur == nums[i]:
            count += 1
     else:
            count = 1
            cur = nums[i]
        if count > 2:
            continue
        new_nums.append(nums[i])
    

    由於有這個限制,所以我們要做的就是把new_nums這個數組去掉,其實去掉是很簡單的,因為我們可以讓nums這個數組自己覆蓋自己。因為產出的數據的數量一定是小於等於數組長度的,所以不會出現數組越界的問題。我們只需要維護一個下標記錄nums數組當中允許覆蓋的位置即可。

    這個也是非常常見的做法,我們在之前的題目當中也曾經見到過。

    class Solution:
        def removeDuplicates(self, nums: List[int]) -> int:
            # start是起始覆蓋指針,指向第一個可以覆蓋的位置
            start, cur, cnt = 0, None, 0
            n = len(nums)
            if n == 0:
                return 0
            for i in range(n):
                if cur == nums[i]:
                    cnt += 1
                else:
                    cnt = 1
                    cur = nums[i]
                # 如果數量超過2,說明當前元素應該捨棄,則continue
                if cnt > 2:
                    continue
                # 否則用當前元素覆蓋start位置,並且start移動一位
                else:
                    nums[start] = nums[i]
                    start += 1
            return start
    

    關於這段代碼,還有一個簡化版本,我們可以把cnt變量也省略掉。因為元素是有序的,我們可以直接用nums[i]和nums[i-2]進行判斷,如果相等,那麼說明重複的元素一定超過了兩個,當前元素需要跳過。

    簡化之後的代碼如下:

    class Solution(object):
        def removeDuplicates(self, nums):
            """  :type nums: List[int]  :rtype: int  """
            i = 0
            for n in nums:
                if i < 2 or n != nums[i - 2]:
                    nums[i] = n
                    i += 1
            return i
    

    總結

    今天的題目不難,總體來說算是Medium偏低難度,主要有兩點值得稱道。第一點是C++風格inplace變更數組的做法,第二點就是數組自我覆蓋的方法。除此之外,題目幾乎沒什麼難度,我想大家應該都能想出解法來。

    如果喜歡本文,可以的話,請點個關注,給我一點鼓勵,也方便獲取更多文章。

    本文使用 mdnice 排版

    本站聲明:網站內容來源於博客園,如有侵權,請聯繫我們,我們將及時處理
    【其他文章推薦】

    USB CONNECTOR掌控什麼技術要點? 帶您認識其相關發展及效能

    台北網頁設計公司這麼多該如何選擇?

    ※智慧手機時代的來臨,RWD網頁設計為架站首選

    ※評比南投搬家公司費用收費行情懶人包大公開

    ※幫你省時又省力,新北清潔一流服務好口碑

    ※回頭車貨運收費標準

  • Day10-微信小程序實戰-交友小程序-實現刪除好友信息與子父組件間通信

    Day10-微信小程序實戰-交友小程序-實現刪除好友信息與子父組件間通信

    回顧:上一次已經把消息的布局以及樣式做好了

    效果圖:

     

     在removeList.js文件中,messageId就是發起這個消息的用戶了

    先查看一下自定義組件的生命周期

    https://developers.weixin.qq.com/miniprogram/dev/framework/custom-component/lifetimes.html

     lifetimes: {
        attached: function() {
          // 在組件實例進入頁面節點樹時執行
        },
        detached: function() {
          // 在組件實例被從頁面節點樹移除時執行
        },
      }

    直接就是在lifttimes裏面進行定義的(直接就是在methods的同級的下面加上即可了)

    因為要對用戶的信息進行渲染,就可以看成是一個一個的對象,所以就可以在removeLIst.js中定義一個對象

    然後遇到的問題就和之前是一樣的了,就是我們得到的數據太多了,沒必要全部都要,可以選擇性的要,只需要頭像和昵稱

    (所以就可以在get前面來一個field)

    lifetimes: {
        attached: function () {
          // 一進來就會進行它了
          db.collection('users').doc(this.data.messageId)
          .field({
            userPhoto : true,
            nickName : true
          })
          .get().then((res)=>{
            this.setData({
                userMessage : res.data
            });
          });
        }
      }

    這樣的話我們在這個頁面裏面就可以得到用戶的數據了,剩下的就是直接可以在wxml中用了

    <!--components/removeList/removeList.wxml-->
    <movable-area class="area">
         <movable-view direction="horizontal" class="view">{{ userMessage.nickName }}</movable-view>
         <image src="{{ userMessage.userPhoto }}" />
         <view class="delete">刪除</view>
     </movable-area>

    效果圖:

     

     在之後設置刪除功能之前,先設置一下就是只要點擊了消息列表中用戶的頭像之後,就可以跳轉到這個用戶的詳情頁了

    可以直接 在編輯個人信息的頁面 editUserInfo.wxml中COPY代碼  

    在設置這個跳轉頁面的url的時候,因為同時要給這個url傳遞參數的,所以這個時候就要用大括號括起來了

    <!--components/removeList/removeList.wxml-->
    <movable-area class="area">
         <movable-view direction="horizontal" class="view">{{ userMessage.nickName }}</movable-view>
         <navigator url="{{'/pages/detail/detail?userId=' + userMessage._id}}" open-type="navigate">
         <image src="{{ userMessage.userPhoto }}" />
         </navigator>
         <view class="delete">刪除</view>
     </movable-area>

    即可實現,點擊頭像跳轉到個人的詳情頁面

     

    二、下面就是對刪除功能進行設計

    一開始的就是,點擊了之後,要給用戶一個提示信息,讓用戶可以選擇是取消還是確定的,這裏用的是一個wx.showModel這樣一個內置的方法

     

    所以就要另外的給“點擊了確定”加邏輯了,就要在微信開放文檔裏面細看這個API了

    https://developers.weixin.qq.com/miniprogram/dev/api/ui/interaction/wx.showModal.html

    wx.showModal({
      title: '提示',
      content: '這是一個模態彈窗',
      success (res) {
        if (res.confirm) {
          console.log('用戶點擊確定')
        } else if (res.cancel) {
          console.log('用戶點擊取消')
        }
      }
    })

    把查到的賦值給list,然後在用數組的filter進行刪除即可了

    通過fileter過濾之後,就是過濾初和我們不想要的東西,然後把這些東西再次賦值為list,然後我們把前後的list打印出來會發現:

     

     確實是過濾掉了的

     由於如果要刪掉的話,就設計了removeList這個組件和message這各頁面之間的通信了,並且是子組件像父組件,用到事件來做的

    https://developers.weixin.qq.com/miniprogram/dev/framework/custom-component/events.html

    <!-- 當自定義組件觸發“myevent”事件時,調用“onMyEvent”方法 -->
    <component-tag-name bindmyevent="onMyEvent" />
    <!-- 或者可以寫成 -->
    <component-tag-name bind:myevent="onMyEvent" />

    所以在message.wxml中隊子組件remove-list設置

    <remove-list wx:for="{{ userMessage }}" wx:key="{{index}}" messageId="{{ item }}"
         bindmyevent="onMyEvent"/> 
        

    這樣事件監聽就寫好了,但是如何在組件中觸發呢,我們回到removelist.js中

    繼續查看山脈的鏈接-微信開發文檔

    Component({
      properties: {},
      methods: {
        onTap: function(){
          var myEventDetail = {} // detail對象,提供給事件監聽函數
          var myEventOption = {} // 觸發事件的選項
          this.triggerEvent('myevent', myEventDetail, myEventOption)
        }
      }
    })

    在removelist.js中通過:

     this.triggerEvent('myevent',list) 

    前面參數,要和在 message.wxml設置的 bindmyevent,後面的myevent對應上

    第二個參數就是我們 過濾剩下的list

    給message傳過去之後

      onMyEvent(ev){
      this.setData({
        userMessage : ev.detail
      });

    通過這樣的設置出現了一個bug,就是我們刪除第一條信息的時候,直接把第二條刪掉了,第一條被留下來了

    當我們查看數據庫的時候,留下來的就是第二條信息,但是在前端显示的是第一條信息留下,第二條信息沒了

    要這樣修改:

    onMyEvent(ev){
        this.setData({
          userMessage : []
        },()=>{
            this.setData({
              userMessage : ev.detail
            });
        });
      }
      

    先賦值為空,之後再次調用removelist,再把過濾的數組進行賦值  

     

     

     也就是全部清空之後,再重新渲染的

     

     整個邏輯:

    1、在數據庫中用戶的頭像和昵稱找到,然後獲取數據

     

    2、點擊刪除按鈕的時候,彈出提示框,如果用戶點了缺點刪除的話,之後我們先查詢

     找到之後,把那個消息在message列表中過濾掉

     

     3、然後再重新的更新,之後就觸發子父通信,把更新之後的list傳給

     

    4、父組件拿到removelist這組件的信息

     

     拿到就更新我們的列表,這樣的話列表就發送了變化了

     

    本站聲明:網站內容來源於博客園,如有侵權,請聯繫我們,我們將及時處理

    【其他文章推薦】

    ※帶您來了解什麼是 USB CONNECTOR  ?

    ※自行創業缺乏曝光? 網頁設計幫您第一時間規劃公司的形象門面

    ※如何讓商品強力曝光呢? 網頁設計公司幫您建置最吸引人的網站,提高曝光率!

    ※綠能、環保無空污,成為電動車最新代名詞,目前市場使用率逐漸普及化

    ※廣告預算用在刀口上,台北網頁設計公司幫您達到更多曝光效益

    ※教你寫出一流的銷售文案?