收藏
回答

问题请教

问题模块
API和组件

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中怎么写才能访问数组中指定下标的值呢?

最后一次编辑于  2017-12-05  (未经腾讯允许,不得转载)
邀请回答
复制链接收藏投诉关注问题回答

8 个回答

  • 须小弥
    须小弥
    2017-12-05

    emmm在线等


    2017-12-05
    赞同
    回复
  • Charon
    Charon
    2017-12-05

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

    2017-12-05
    赞同
    回复
  • 刘文文
    刘文文
    2017-12-05

    你可以先用变量试试的

    2017-12-05
    赞同
    回复
  • 须小弥
    须小弥
    2017-12-05

    我接着描述一下:

    原先的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]


    2017-12-05
    赞同
    回复
  • 须小弥
    须小弥
    2017-12-05

    我好奇的地方是:

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

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

    2017-12-05
    赞同
    回复
  • 老猴Stormrage
    老猴Stormrage
    2017-12-05

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

    2017-12-05
    赞同
    回复
  • 须小弥
    须小弥
    2017-12-05

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

    2017-12-05
    赞同
    回复
  • 须小弥
    须小弥
    2017-12-05

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

    2017-12-05
    赞同
    回复