1. 程式人生 > >【微信小程式】在wxml中執行復雜運算的巧妙方法

【微信小程式】在wxml中執行復雜運算的巧妙方法

前言:微信小程式wxml中的{{  }}可以進行簡單四則運算,三元運算子等簡單的運算。但是像str.split(','),arr.concat()等複雜的運算是沒辦法在{{  }}中執行的。但是我們可以通過其他方法實現他。

一、問題還原

  <!-- 可以這麼用 -->
  <view>{{ 1+1 }}</view>
  <view>{{ 2>1 ? '是':'否'}}</view>

  <!-- 不可以這麼用 -->
  <view>{{ Math.random() > '大於':'小於' }}</view>
  <view wx:for="{{'1,2,3'.split(',')}}">
      {{item}}
  </view>

二、解決方案

  <wxs module="fn">
      module.exports = {
          split: function(str){
            return str.split(',');
          },
          random: function(){
            return Math.random();
          }
      }
  </wxs>
  <view>{{fn.random() > 0.5 ? '大於':'小於'}}</view>
  <view wx:for="{{fn.split('1,2,3')}}">
      {{item}}
  </view>

像在wxml中插入wxs就可以實現複製運算的效果啦。

三、方法進階

在模板中插入複雜運算的wxs

  <template name="tpl">
    <view wx:for="{{fn.split(str)}}">
        {{item}}
    </view>
    <wxs module="fn">
      module.exports = {
          split: function(str){
            return str.split(',');
          }
      }
    </wxs>
  </template>

  <template is="tpl" data="{{str}}"></template>

相關推薦

程式wxml執行運算巧妙方法

前言:微信小程式wxml中的{{  }}可以進行簡單四則運算,三元運算子等簡單的運算。但是像str.split(','),arr.concat()等複雜的運算是沒辦法在{{  }}中執行的。但是我們可以

程式在js匯入第三方js或自己寫的js,使用外部js的function的兩種方法 import和require的區別使用方法

如下 定義了一個外部js檔案,其中有一個function import lunaCommon from '../lunaCommon.js'; var ctx = wx.getStorageSync("ctx"); var filter = "/ms-code"; var apis

程式https://api.douban.com 不在以下 request 合法域名列表

https://api.douban.com 不在以下 request 合法域名列表中,請參考。。。 因為這是解決了問題才寫的部落格,所以這裡沒留下報錯截圖,下面是參考了別人的解決方法,已親測有效。 解決方法: 注意:同一賬戶註冊了小程式後好像不能註冊訂閱號

程式合法域名校驗出錯,不在以下合法域名列表 解決方法

微信小程式開發過程中,在請求資料時,出現如下問題: 這是因為在小程式中發起了wx.request請求,但是請求的域名沒有在微信公眾平臺後臺設定。 解決方法: 一、 可以在小程式中設定不校驗

程式圖片被壓扁怎麼辦?在image新增 mode="widthFix"

參考:http://www.jb51.net/article/116779.htm下面這裡引數是錯的,不能用heightFix官方說明:http://www.jb51.net/article/116771.htm--------------------------------

程式程式碼構成——WXML 模板

二、WXML 模板 從事過網頁程式設計的人知道,網頁程式設計採用的是 HTML + CSS + JS 這樣的組合,其中 HTML 是用來描述當前這個頁面的結構,CSS 用來描述頁面的樣子,JS 通常是用來處理這個頁面和使用者的互動。 同樣道理,在小程式中也有同樣的角色

程式封裝網路請求並在wxml呼叫

正文: // url:網路請求的url method:網路請求方式 data:請求引數 message:提示資訊 success:成功的回撥函式 fail:失敗的回撥 //pages/utils/

程式開發實戰 之 「檢視層」WXML & WXSS 全解析

在《微信小程式開發實戰 之 「配置項」與「邏輯層」》中我們詳細闡述了小程式開發的程式和頁面各配置項與邏輯層的基礎知識。下面我們繼續解析小程式開發框架中的「檢視層」部分。學習完這兩篇文章的基礎知識,動手開發一個簡單的小程式應用已經不成問題了。 檢視層 框架中檢視層以給定的樣式展現資料並反饋事件給邏輯層。

程式--bindtap引數傳遞,配合wx.previewImage實現多張縮圖預覽

  本文為原創隨筆,純屬個人理解。如有錯誤,歡迎指出。 如需轉載請註明出處 在微信小程式中預覽圖片分為   a、預覽本地相簿中的圖片。   b、預覽某個wxml中的多張圖片。 分析:實質其實是一樣的。都是給wx.previewImage傳入引數

程式公共方法實現實時捕捉input輸入

專案中,一個表單中經常有好幾個input,但是微信小程式並不像vue那樣實現雙向繫結,所以我們要自己去實現當用戶輸入的時候,實時獲取使用者輸入的值。 方法比較簡單,就兩個步驟。 1.wxml <input data-name='form.base.name

程式開發工具上七牛雲的圖片可以看到,但是在真機上看不到的原因解決

在開發微信小程式過程中,在微信開發者工具上,七牛雲的圖片都可以展示出來,但是在真機上,七牛雲的圖片卻展示不出來,也沒有報404找不到或者不能載入圖片的問題,     必須保證: 1.圖片是用image載入的; 2.圖片的url裡面沒有中文; 3.圖片的HTTP應為小寫的

程式c# 實現獲取openid、session_key 服務端

c#寫一個獲取微信小程式 openid和session_key 的方法。。 1,微信小程式端 // 登入 wx.login({ success: res => { // 傳送 res.code 到後臺換取 openId, sessionKey,

程式元件之頁面佈局

小程式的flex佈局 小程式建議使用flex佈局進行排版 flex就是一個盒裝彈性佈局 flex是一個容器,所有子元素都是它的成員。 定義佈局:display:flex flex 容器的屬性: 1、屬性flex-direction: 排列方向。有下面

程式scroll-view 注意事項

之前用到scroll-view的時候踩過一次坑,解決後,覺得不是什麼很深的坑,遂沒有做記錄,結果這次又用到了,同一個坑又掉進去一次,心裡很難受,難受我沒長腦子,也難受我眼高手低,所以這一次,我決定記錄下來,給自己一個警醒!   橫向滑動注意事項: 1、scroll-view

程式下載並預覽文件——pdf、word、excel等多種型別

簡要:wx.downloadFile(OBJECT)下載檔案資源到本地,客戶端直接發起一個 HTTP GET 請求,返回檔案的本地臨時路徑。wx.openDocument(OBJECT)新開頁面開啟文件,支援格式:doc, xls, ppt, pdf, docx, xlsx, pptx。 呼

程式入門

MINA框架:響應式資料繫結系統:檢視層、邏輯層,背後有MVVM     將View 的狀態和行為抽象化,將檢視 UI 和業務邏輯分開 一、檢視層描述語言:      1、WXML:類似HTML    

程式 storage的小結

微信本地儲存,為此提供了好幾個方法。 api文件如下: ps: api文件我居然翻到了兩個版本,真特麼神奇。還好兩版就是一個精簡版一個詳解版。 每個微信小程式都可以有自己的本地快取,可以

程式上拉重新整理和下拉載入

上拉重新整理和下拉載入有兩種方式可以實現: 1.使用scroll-view元件進行操作,使用自帶的scrolltoupper和scrolltolower事件可以實現。適合頁面區域性的上拉下拉。 附上

程式程式引入echarts統計圖

前言 微信現在是太多人使用了,應用這東西也非常的多,也包含小程式了,小程式發展到現在已經是非常好了。我很久都沒寫小程式的教程了,現在就開始今天的教程吧。 預覽 官方git網站。你可以微信掃一掃掃下

程式app.json配置

最近因公司開發團隊合併,需要了解微信小程式,估找了demo來學習。 app.json配置項列表 pages 接受一個數組,每一項都是字串,來指定小程式由哪些頁面組成。每一項代表對應頁面的【路徑+檔名】資訊, 陣列的第一項代表小程式的初始頁面。小程式中新增/