codecamp

TTML-数据绑定

基础绑定

<view> {{ message }} </view>
Page({
  data: {
    message: "Hello World!"
  }
});


属性绑定(需要在双引号之内)

<view id="item-{{id}}"> </view>
Page({
  data: {
    id: 0
  }
});


指令属性(控制渲染逻辑)

<view tt:if="{{condition}}"> </view>
Page({
  data: {
    condition: true
  }
});


原生属性(需要在双引号之内)

<checkbox checked="{{false}}" />


运算

可以在 {{}} 内进行简单的运算,支持的有如下几种方式:

三元运算

<view hidden="{{flag ? true : false}}"> Hidden </view>

数运算

<view> {{a + b}} {{c}} ! </view>
<!-- 结果是3 hello ! -->
Page({
  data: {
    a: 1,
    b: 2,
    c: hello
  }
});

字符串运算

<view>{{"hello" + name}}</view>
Page({
  data: {
    name: "world"
  }
});

渲染对象属性

<view>{{object.key}} {{array[0]}}</view>
Page({
  data: {
    object: {
      key: "Hello "
    },
    array: ["World"]
  }
});

逻辑控制

<view tt:if="{{length > 1}}"> </view>


混合渲染

支持在 ttml 里面使用变量构建新结构。

数组

<view tt:for="{{[zero, 1, 2, 3, 4]}}"> {{item}} </view>
Page({
  data: {
    zero: 0
  }
});

对象

可以在 template 上定义 data 时使用

<template is="objectCombine" data="{{foo: a, bar: b}}"></template>
Page({
  data: {
    a: 1,
    b: 2
  }
});
⚠️ 注意现在只支持在 template 上定义对象,在其它标签上这么写会报错

也支持使用扩展运算符 ... 将对象展开

<template is="objectCombine" data="{{...obj1, ...obj2, e: 5}}"></template>
<!-- template到的data是: {a: 1, b: 2, c: 3, d: 4, e: 5} -->
Page({
  data: {
    obj1: {
      a: 1,
      b: 2
    },
    obj2: {
      c: 3,
      d: 4
    }
  }
});


常见语法错误

以下表达式都不支持,写了之后会导致程序编译失败

<!-- 带有括号和函数调用 -->
<view>{{ (1) }}</view>
<view>{{ foo() }}</view>
<view>{{ a: function () {} }}</view>
<view tt:if="{{ a.indexOf('flag') > 2 }}"></view>


TTML
TTML-列表渲染
温馨提示
下载编程狮App,免费阅读超1000+编程语言教程
取消
确定
目录

字节跳动小程序 介绍

字节跳动小程序 开发

字节跳动小程序开发框架

字节跳动小程序开发框架基础说明

字节跳动小程序开发框架基础功能

字节跳动小程序开发框架逻辑层

无标题文章

无标题目录

API

无标题文章

无标题文章

无标题文章

无标题文章

无标题文章

无标题目录

无标题目录

无标题文章

关闭

MIP.setData({ 'pageTheme' : getCookie('pageTheme') || {'day':true, 'night':false}, 'pageFontSize' : getCookie('pageFontSize') || 20 }); MIP.watch('pageTheme', function(newValue){ setCookie('pageTheme', JSON.stringify(newValue)) }); MIP.watch('pageFontSize', function(newValue){ setCookie('pageFontSize', newValue) }); function setCookie(name, value){ var days = 1; var exp = new Date(); exp.setTime(exp.getTime() + days*24*60*60*1000); document.cookie = name + '=' + value + ';expires=' + exp.toUTCString(); } function getCookie(name){ var reg = new RegExp('(^| )' + name + '=([^;]*)(;|$)'); return document.cookie.match(reg) ? JSON.parse(document.cookie.match(reg)[2]) : null; }