收藏
回答

关于时间选择器的start和end传入数据来控制的问题。

问题模块
API和组件

<picker mode="time" value="{{timeStart}}" start="00:00" end="{{timeEnd}}" bindchange="timeStart">{{timeStart}}</picker>

<view>至</view>
<picker mode="time" value="{{timeEnd}}" start="00:00" end="24:00" bindchange="timeEnd">{{timeEnd}}</picker>

如上,实际效果如下:


我希望实现的效果:前面的时间永远早于后面的时间,所以我在第一个picker的end里面传进一个根据后面picker变化的时间。

但是,第一个picker的效果做到了,可是貌似传进的模版数据同时影响到后面picker的end了,求解~

是BUG吗?

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

3 个回答

  • MagicTutor
    MagicTutor
    2017-05-17

    <picker bindchange="startTimeEventHandler" mode="time" value="{{timeStartValue}}" start="00:00" end="24:00">{{timeStartValue}}</picker>

    <view>至</view>

    <picker mode="time" value="{{timeEndValue}}" start="{{timeEndStart}}" end="24:00" bindchange="endTimeEventHandler">{{timeEndValue}}</picker>

    -----------------------------------------------------------------------------------------------------

    data: {

            timeStartValue: "00:00",

            timeEndValue: "00:00",

            timeEndStart: "00:00"

        },

        startTimeEventHandler: function (event) {

            this.setData({

                timeStartValue: event.detail.value,

                timeEndValue: event.detail.value,

                timeEndStart: event.detail.value

            });

        },

        endTimeEventHandler: function (event) {

            this.setData({

                timeEndValue: event.detail.value

            });

        },


    2017-05-17
    赞同
    回复
  • SHINING诗永
    SHINING诗永
    2017-05-17

    我按照你的改,在实机测试也行了,多谢分享。当我以为我的错误是end用了和value同一个变量时,我尝试照你的修改了下,如:

    <picker mode="time" value="{{timeStart}}" start="00:00" end="{{timeStartEnd}}" bindchange="timeStart">{{timeStart}}</picker>
    <view>至</view>
    <picker mode="time" value="{{timeEnd}}" start="00:00" end="24:00" bindchange="timeEnd">{{timeEnd}}</picker>
    timeStart: function (e) {
        timeStart = e.detail.value
        this.setData({
          timeStart: timeStart
        })
      },
      timeEnd: function (e) {
        timeEnd = e.detail.value
        this.setData({
          timeEnd: timeEnd,
          timeStartEnd: timeEnd
        })
      }

    结果在实机上还是有问题,是我哪里又错了,或者说end传数据有问题呢?

    2017-05-17
    赞同
    回复
  • MagicTutor
    MagicTutor
    2017-05-18

    你的局部变量名 timeEnd和data中的timeEnd重名

    2017-05-18
    赞同
    回复