web前端,根据JS数组做条件渲染的问题
web前端,我们常常要通过用户的权限来做页面元素的渲染,用户的权限一般是JS对象。例如这样:
data : {
power: { isAdmin: true, isStaff: true, isSuperStaff: true }
}
<view wx:if="{{power.isAdmin}}">管理员</view>
<view wx:if="{{power.isStaff}}">员工</view>
<view wx:if="{{power.isSuperStaff}}">超级员工</view>
以上代码是可以实现需求的,但我希望权限是一个数组而不是对象,例如这样:
data : {
power: [ 'isAdmin', 'isStaff', 'isSuperStaff' ]
}
问题来了,如果条件是数组,渲染代码应该怎么写?
我以为可以这样,但实际上不行:
<view wx:if="{{power.includes('isAdmin')}}">管理员</view>
是 权限里弄成一个数组? 然后没有权限的判断用!==includes() ? 是这个意思吗还是在权限里边判断是不是管理员账号? 这个不是应该是对象才对嘛 外面套一层循环wx:for="{{power}}",循环里面写判断 这样是可以的吧。你再看看呢 渲染时将权限数组循环处理,然后判断是否存在相应的权限 gorkys 发表于 2021-12-8 14:18
这样是可以的吧。你再看看呢
控制台肯定可以,渲染不行。
冥门饿鬼 发表于 2021-12-8 14:08
是 权限里弄成一个数组? 然后没有权限的判断用!==includes() ? 是这个意思吗还是在权限里边判断是 ...
就是判断数组有没有对应的关键字,如果有,就渲染,没有就渲染。 循环数组用 wx:for wx:if="{{power.includes('isAdmin')}}"
根本原因在于,微信小程序模板语法,不支持复杂计算!!!垃圾的很。
页:
[1]
2