问题请教
发布于 7 年前 作者 gang28 19891 次浏览 来自 问答

main.js

data: {

    isChecked: [true, false, true, true, true, true, true, true, true, true, true, true, true, true, true]

}

main.wxml

<view class="{{isChecked[1] ? ‘main_view’ : ‘main_view_clicked’ }}" bindtap=‘click’ bindlongpress=‘cancelclick’ id=‘1’></view>

我想在view中用三目运算,根据isChecked数组中不同的值来使view采用不同的样式。

请问:

我这么写isChecked[1]好像没有作用?


应该在view中怎么写才能访问数组中指定下标的值呢?

8 回复

你可以先用变量试试的

isChecked[1] 等于 false,应该输出 main_view_clicked

看着好像是没有渲染的问题。楼主确定修改数组值之后有用setData渲染数据?

纳尼?等下我试试,我貌似发现了问题所在,,首选感谢一下楼上

我好奇的地方是:

如果我手动更改isChecked里面的初始值,测试了false或者true。发现view的class会按照对应值采用main_view’ 或者’main_view_clicked’

但是,当我在js里面动态更改isChecked[1]的值的时候,view的class不再更新了?

emmm在线等

问题已解决,如后来者有类似疑问,可以参考我的博客。http://www.cnblogs.com/simuhunluo/p/7989461.html

我接着描述一下:

原先的data里面的数组我改了一下,全部都为true。如下:

isChecked: [true, true, true, true, true, true, true, true, true, true, true, true, true, true, true]

初始的view的三目执行main_view

首先,我点击了那个view,然后在绑定的bindtap方法里面,把isChecked[1]设置为false,输出日志如下(输出整个isChecked数组):

main.js? [sm]:42 (15) [true, false, true, true, true, true, true, true, true, true, true, true, true, true, true]

此时,wxml里面的三目不应该执行main_view_clicked了吗?但是测试时候view的样式仍然没有变啊。

这个是绑定的bindlongpress长按事件,把isChecked[1]重新置为true,并输出日志。

main.js? [sm]:50 (15) [true, true, true, true, true, true, true, true, true, true, true, true, true, true, true]

回到顶部