template写了picker 在引用模板的页面setData 不能更新数据
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 {{array[index]}} <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 就是 {{array[index]}}没改变 只有在页面初始化的时候 {{array[0]}}{{array[1]}}或其他把索引写死的才能获取到值 点击后却不能获取到 我看了模板的官方文档 是这么解释: 模板的作用域模板拥有自己的作用域,只能使用 data 传入的数据以及模版定义文件中定义的 [代码][代码] 模块。 所以是在不刷新页面的情况下 模板里面的事件不能提交数据到index.js后获取数据,然后获取到更新的数据 更新UI吗?