做了个筛选的功能,把代码写在页面中的时候,能够正常显示选中的数量,如图1。当代码写在components组件中时,就没有显示选中的数量。如图2,怎么解决?求大神帮忙
<!--pages/jobs/index/index.wxml-->
<view class="tabbar-group">
<segment class="tabbar-list" items="{{items}}" result="{{result}}" binditemchengde="onItemChengdeEvent" defaultIndex="0">
<view slot="0" class="segment-page all-page">
</view>
<view slot="1" class="segment-page new-page">
<view>2</view>
</view>
<view slot="2" class="segment-page near-page">
<view>3</view>
</view>
</segment>
</view>
组件代码
<!--components/segment/segment.wxml-->
<view class="segment-group">
<view class="segment-header">
<view class="segment-list">
<block wx:for="{{items}}" wx:key="item">
<view class="segment-item actvie" wx:if="{{currentIndex === index}}" bind:tap="onItemTapEvent" data-index="{{index}}">{{item}}</view>
<view class="segment-item" wx:else bind:tap="onItemTapEvent" data-index="{{index}}">{{item}}</view>
</block>
</view>
<view class="tabbar-right">
<city class="city"></city>
<view class="filter-group" bind:tap="onFilter">
<view class="filter-title">筛选</view>
<view class="felter-symbol" wx:if="{{formData.jobsCount}}">·</view>
<view class="filter-number">{{formData.jobs}}</view>
<icon class="icon"></icon>
</view>
</view>
</view>
<view class="segment-body">
<block wx:for="{{items}}" wx:key="item">
<slot name="{{index}}" wx:if="{{currentIndex===index}}"></slot>
</block>
</view>
</view>
// components/segment/segment.js
Component({
options:{
multipleSlots:true
},
/**
* 组件的属性列表
*/
properties: {
items: {
type: Array,
value: []
},
defaultIndex:{
type:Number,
value:0
}
},
/**
* 组件的初始数据
*/
data: {
currentIndex:0,
formData: {
jobs: [],
jobsCount: '',
}
},
lifetimes:{
attached(){
var that = this;
that.setData({
currentIndex:that.properties.defaultIndex
})
}
},
/**
* 组件的方法列表
*/
methods: {
onItemTapEvent(event){
var index = event.target.dataset.index;
this.setData({
currentIndex:index
})
var detail = {"index":index};
var options = {}
this.triggerEvent('itemchengde',detail,options);
},
onFilter(e){
const selectedData = this.data.formData.jobs;
console.log(this.data.formData.jobsCount);
const selected = selectedData.length > 0
? encodeURIComponent(JSON.stringify(selectedData))
: encodeURIComponent(JSON.stringify([]));
console.log(selected);
wx.navigateTo({
url: `/pages/position-list/position-list?selected=${selected}&type=position`
});
},
}
})
