做自(zì)由與創造的先行者

數據綁定

小(xiǎo)程序開(kāi)發手冊

用(yòng)戶界面呈現(xiàn)會(huì)因爲當前時(shí)刻數據不同而有所不同,或者是因爲用(yòng)戶的操作(zuò)發生動态改變,這(zhè)就要求程序的運行過程中,要有動态的去改變渲染界面的能(néng)力。在 Web 開(kāi)發中,開(kāi)發者使用(yòng) JavaScript 通過Dom 接口來(lái)完成界面的實時(shí)更新。在小(xiǎo)程序中,使用(yòng) WXML 語言所提供的數據綁定功能(néng),來(lái)完成此項功能(néng)。

先看(kàn)一個簡單的例子。

将 pages/wxml/index.wxml 文(wén)件的内容做一些(xiē)簡單的修改,如代碼2-5所示。

代碼清單2-5 數據綁定示例

<!--pages/wxml/index.wxml-->

<text>當前時(shí)間:{{time}}</text>

​保存後工(gōng)具刷新,模拟器并沒有顯示出當前的時(shí)間,這(zhè)是因爲我們并沒有給 time 設置任何初始值,請(qǐng)打開(kāi) pages/wxml/index.js 文(wén)件,在 data 的大(dà)括号中加入:time: (new Date()).toString()。

如代碼2-6所示。

代碼清單2-6 數據綁定示例

// pages/wxml/index.js

Page({

/**

* 頁面的初始數據

*/

data: {

time: (new Date()).toString()

},

})

保存,模拟器刷新後正确的展示了(le)當前時(shí)間,并且每次編譯時(shí)間都會(huì)被更新。

WXML 通過 {{變量名}} 來(lái)綁定 WXML 文(wén)件和(hé)對(duì)應的 JavaScript 文(wén)件中的 data 對(duì)象屬性。

後文(wén)中爲了(le)保持簡單,通過以下(xià)格式來(lái)展示上(shàng)述的代碼邏輯,使用(yòng)第一段注釋來(lái)表明(míng) WXML 對(duì)應的腳本文(wén)件中的 data 結構。

代碼清單2-7 展示格式

<!--

{

time: (new Date()).toString()

}

-->

<text>當前時(shí)間:{{time}}</text>

屬性值也(yě)可以動态的去改變,有所不同的是,屬性值必須被包裹在雙引号中,如下(xià):

代碼清單2-8 屬性值的綁定

<!-- 正确的寫法 -->

<text data-test="{{test}}"> hello world</text>

<!-- 錯誤的寫法 -->

<text data-test={{test}}> hello world </text >

需要注意的是變量名是大(dà)小(xiǎo)寫敏感的,也(yě)就是說 {{name}} 和(hé) {{Name}} 是兩個不同的變量。

代碼清單2-9 綁定的變量大(dà)小(xiǎo)寫敏感

<!--

{

w: 'w',

W: 'W'

}

-->

<view>{{w}}</view>

<view>{{W}}</view>

<!-- 輸出

w

W

-->

還需要注意,沒有被定義的變量的或者是被設置爲 undefined 的變量不會(huì)被同步到(dào) wxml 中,如代碼2-10所示。

代碼清單2-10 undefined值不會(huì)被輸出到(dào) wxml 中

<!--

{

var2: undefined,

var3: null,

var4: "var4"

}

-->

<view>{{var1}}</view>

<view>{{var2}}</view>

<view>{{var3}}</view>

<view>{{var4}}</view>

<!--

輸出:

null

var4

-->

關于數據綁定的概念在第三章中有更爲詳細的介紹。

網站(zhàn)建設開(kāi)發|APP設計(jì)開(kāi)發|小(xiǎo)程序建設開(kāi)發
下(xià)一篇:邏輯語法
上(shàng)一篇:Hello World