.wxml
,打开 pages/wxml/index.wxml 文件,有过 HTML 的开发经验的读者应该会很熟悉这种代码的书写方式,简单的 WXML 语句在语法上同 HTML 非常相似。<!--pages/wxml/index.wxml--><text>pages/wxml/index.wxml</text>
<!-- 在此处写注释 --><标签名 属性名1="属性值1" 属性名2="属性值2" ...> ...</标签名>
<text>hello world<!--text 没有闭合,导致编译错误:VM148:2 ./pages/wxml/index.wxmlend tag missing, near text> 1 | <text>hello world| ^-->
<!--一个简单的文本标签 --><text>hello world</text><!-- view 中包含了 text 标签 --><view><text>hello world</text></view>
<image class="userinfo-avatar" src="./image/a.png" ></image>
<!--pages/wxml/index.wxml--><text>当前时间:{{time}}</text>
time: (new Date()).toString()
,如下代码所示:// pages/wxml/index.jsPage({/*** 页面的初始数据*/data: {time: (new Date()).toString()},})
<!--{time: (new Date()).toString()}--><text>当前时间:{{time}}</text>
<!-- 正确的写法 --><text data-test="{{test}}"> hello world</text><!-- 错误的写法 --><text data-test={{test}}> hello world </text >
<!--{w: 'w',W: 'W'}--><view>{{w}}</view><view>{{W}}</view><!-- 输出wW-->
<!--{var2: undefined,var3: null,var4: "var4"}--><view>{{var1}}</view><view>{{var2}}</view><view>{{var3}}</view><view>{{var4}}</view><!--输出:nullvar4-->
<!-- 根据 a 的值是否等于 10 在页面输出不同的内容 --><text>{{ a === 10? "变量 a 等于10": "变量 a 不等于10"}}</text>
<!--{ a: 1, b: 2, c: 3 }--><view> {{a + b}} + {{c}} + d </view><!-- 输出 3 + 3 + d -->
<!--{ name: 'world' }--><view>{{"hello " + name}}</view><!-- 输出 hello world -->
<text>{{[1,2,3]}}</text><!-- 输出 1,2,3 --><text>{{"hello world"}}</text><!-- 输出 hello world -->
<view wx:if="{{condition}}"> True </view>
<view wx:if="{{length > 5}}"> 1 </view><view wx:elif="{{length > 2}}"> 2 </view><view wx:else> 3 </view>
<block wx:if="{{true}}"><view> view1 </view><view> view2 </view></block>
<!-- array 是一个数组 --><view wx:for="{{array}}">{{index}}: {{item.message}}</view><!-- 对应的脚本文件Page({data: {array: [{message: 'foo',}, {message: 'bar'}]}})-->
<view wx:for="{{array}}" wx:for-index="idx" wx:for-item="itemName">{{idx}}: {{itemName.message}}</view>
<block wx:for="{{[1, 2, 3]}}"><view> {{index}}: </view><view> {{item}} </view></block>
<input/>
中的输入内容,<switch/>
的选中状态),需要使用 wx:key
来指定列表中项目的唯一的标识符。<switch wx:for="{{objectArray}}" wx:key="unique" > {{item.id}} </switch><button bindtap="switch"> Switch </button><button bindtap="addToFront"> Add to the front </button><switch wx:for="{{numberArray}}" wx:key="*this" > {{item}} </switch><button bindtap="addNumberToFront"> Add Number to the front </button>
Page({data: {objectArray: [{id: 5, unique: 'unique_5'},{id: 4, unique: 'unique_4'},{id: 3, unique: 'unique_3'},{id: 2, unique: 'unique_2'},{id: 1, unique: 'unique_1'},{id: 0, unique: 'unique_0'},],numberArray: [1, 2, 3, 4]},switch: function(e) {const length = this.data.objectArray.lengthfor (let i = 0; i < length; ++i) {const x = Math.floor(Math.random() * length)const y = Math.floor(Math.random() * length)const temp = this.data.objectArray[x]this.data.objectArray[x] = this.data.objectArray[y]this.data.objectArray[y] = temp}this.setData({objectArray: this.data.objectArray})},addToFront: function(e) {const length = this.data.objectArray.lengththis.data.objectArray = [{id: length, unique: 'unique_' + length}].concat(this.data.objectArray)this.setData({objectArray: this.data.objectArray})},addNumberToFront: function(e){this.data.numberArray = [ this.data.numberArray.length + 1 ].concat(this.data.numberArray)this.setData({numberArray: this.data.numberArray})}})
<template name="msgItem"><view><text> {{index}}: {{msg}} </text><text> Time: {{time}} </text></view></template>
<!--item: {index: 0,msg: 'this is a template',time: '2016-06-18'}--><template name="msgItem"><view><text> {{index}}: {{msg}} </text><text> Time: {{time}} </text></view></template><template is="msgItem" data="{{...item}}"/><!-- 输出0: this is a template Time: 2016-06-18-->
<template name="odd"><view> odd </view></template><template name="even"><view> even </view></template><block wx:for="{{[1, 2, 3, 4, 5]}}"><template is="{{item % 2 == 0 ? 'even' : 'odd'}}"/></block><!-- 输出oddevenoddevenodd-->
<!-- item.wxml --><template name="item"><text>{{text}}</text></template>
<import src="item.wxml"/><template is="item" data="{{text: 'forbar'}}"/>
<!-- A.wxml --><template name="A"><text> A template </text></template>
<!-- B.wxml --><import src="a.wxml"/><template name="B"> <text> B template </text></template>
<!-- C.wxml --><import src="b.wxml"/><template is="A"/> <!-- 这里将会触发一个警告,因为 b 中并没有定义模板 A --><template is="B"/>
<template/> <wxs/>
外的整个代码引入,相当于是拷贝到 include
位置,如下代码所示:<!-- index.wxml --><include src="header.wxml"/><view> body </view><include src="footer.wxml"/>
<!-- header.wxml --><view> header </view>
<!-- footer.wxml --><view> footer </view>
属性名 | 类型 | 描述 | 注解 |
id | String | 组件的唯一标识 | 整个页面唯一 |
class | String | 组件的样式类 | 在对应的 WXSS 中定义的样式类 |
style | String | 组件的内联样式 | 可以动态设置的内联样式 |
hidden | Boolean | 组件是否显示 | 所有组件默认显示 |
data-* | Any | 自定义属性 | 组件上触发的事件时,会发送给事件处理函数 |
bind*/catch* | EventHandler | 组件的事件 | - |
本页内容是否解决了您的问题?