index.wxml
< picker mode= "selector" bindchange= "bindPickerChange" value= "{{index}}" range= "{{array}}" >
<view class="picker" > {{array[index] }}</view>
< /picker>
index.js
Page({
data: {
array: ['请选择', '1','2'],
index: 0
},
onLoad: function () {
},
bindPickerChange: function (e) {
var that = this;
that.setData({
index: e.detail.value
})
console.log(that.data.array[that.data.index]);
}
})
在页面中这样写,点击后就可以更新选项
这个picker有很多地方要用,当我想把这个picker提取为template时
template.wxml
<template name="part">
< picker mode= "selector" bindchange= "bindPickerChange" value= "{{index}}" range= "{{array}}" >
<view class="picker" > {{array[index] }}</view>
< /picker>
<template< span=""></template></template<>
index.wxml
<import src="part.wxml" />
<template is="part" data="{{array}}"></template>
index.js Page({ data: { array: ['请选择', '1','2'], index: 0 }, onLoad: function () { }, bindPickerChange: function (e) { var that = this; that.setData({ index: e.detail.value }) console.log(that.data.array[that.data.index]); } })
在index.wxml页面点击picker后就获得不到数据了bindPickerChange 发生了改变,获取到了值,但是UI没更新。
但是 picker的range值 和 value 值 都获取到了, 只有UI 就是
只有在页面初始化的时候
点击后却不能获取到
我看了模板的官方文档
是这么解释:
模板的作用域
模板拥有自己的作用域,只能使用 data 传入的数据以及模版定义文件中定义的
模块。
所以是在不刷新页面的情况下 模板里面的事件不能提交数据到index.js后获取数据,然后获取到更新的数据 更新UI吗?
感谢楼上
<template is="part" data="{{array,index}}"/>