A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始



【前言】
         WXMLWeiXinMarkup Language)是框架设计的一套标签语言,结合基础组件、事件系统,可以构建出页面的结构。用以下一些简单的例子来看看 WXML 具有什么能力。
【数据绑定 {{ }}
<!--wxml-->
[HTML] 纯文本查看 复制代码
<view> {{message}} </view>
// page.js
[JavaScript] 纯文本查看 复制代码
Page({

  data: {

    message: 'Hello MINA!'

  }

})
特别注意:
1. 花括号和引号之间不能有空格
2. 不要直接写checked="false",其计算结果是一个字符串,转成 boolean 类型后代表真值
<!--其计算结果是一个字符串,转成boolean 类型后变成了 true  -->
[HTML] 纯文本查看 复制代码
<checkbox checked="false"> </checkbox>
<!--正确写法  -->
[HTML] 纯文本查看 复制代码
<checkbox checked="{{false}}"> </checkbox>
效果图:
【列表渲染wx:for
<!--wxml-->
[HTML] 纯文本查看 复制代码
<view wx:for="{{array}}"> {{item}} </view> 
// page.js
[JavaScript] 纯文本查看 复制代码
Page({

  data: {

    array: [1, 2, 3, 4, 5]

  }

})

 
wx:key  提高列表渲染时排序的效率
wx:key 的值以两种形式提供
1. 字符串,代表在 for 循环的 array item 的某个 property,该 property 的值需要是列表中唯一的字符串或数字,且不能动态改变。
2. 保留关键字 *this 代表在 for 循环中的 item 本身,这种表示需要item 本身是一个唯一的字符串或者数字。
【条件渲染 wx:if   wx:else   wx:elif
<!--wxml-->
[HTML] 纯文本查看 复制代码
<view wx:if="{{length >= 80}}"> 优秀 </view>

<view wx:elif="{{length >= 60}}"> 良好 </view>

<view wx:else> 加油 </view>
// page.js
[JavaScript] 纯文本查看 复制代码
Page({

  data: {

    length: '95'

  }

})
【模板】
WXML提供模板(template),可以在模板中定义代码片段,然后在不同的地方调用。
1.     定义模板
使用 name 属性,作为模板的名字。然后在<template/>内定义代码片段,如:
[JavaScript] 纯文本查看 复制代码
<template name="msgItem">

  <view>

    <text> {{index}}: {{msg}} </text>

    <text> Time: {{time}} </text>

  </view>

</template>
2.     使用模板
使用 is 属性,声明需要的使用的模板,然后将模板所需要的 data 传入,如
<template is="msgItem"data="{{...item}}"/>
[JavaScript] 纯文本查看 复制代码
Page({

  data: {

    item: {

      index: 0,

      msg: 'this is a template',

      time: '2016-09-15'

    }

  }

})
is 属性可以使用 Mustache 语法,来动态决定具体需要渲染哪个模板:
[HTML] 纯文本查看 复制代码
<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>
3.     模板的作用域

模板拥有自己的作用域,只能使用 data 传入的数据以及模版定义文件中定义的 <wxs /> 模块。

0 个回复

您需要登录后才可以回帖 登录 | 加入黑马