问题:在微信XHTML中当wx:for
和wx:if 和 wx:else
一起用的时候会报错Bad attr wx
,如图:
如果蓝色标记,造成问题的原因是因为你的for的优先级比if的优先级要高,如下代码:
/*先进行了for循环 */
for(){
....
/*然后进入了if判断 */
if(){
....
}
}
/*最后单独的一个else */
else{
....
}
这就成了一个语法错误了。
正确写法1:
<!- 包一个block,代码从上而下顺序执行,这样if的优先级就会在上面-->
<view class="container log-list">
<block wx:if="{{show}}">
<view wx:for="{{logs}}" wx:for-item="log" wx:key="index" >
<text class="log-item">{{index + 1}}. {{log}}</text>
</view>
</block>
<block wx:else>
<view>
暂无数据
</view>
</block>
</view>
解析:
/*先进入了if判断 */
if(){
....
for(){
/*然后进行了for循环 */
....
}
}
/*最后一个else */
else{
....
}
正确写法2:
<view class="container log-list">
<view wx:if="{{show}}" wx:for="{{logs}}" wx:for-item="log" wx:key="index" >
<text class="log-item">{{index + 1}}. {{log}}</text>
</view>
<view wx:if="{{!show}}">
暂无数据
</view>
</view>
解析:
/*先进行了for循环 */
for(){
....
/*然后进入了if判断 */
if(){
....
}
}
/*最后又是一个单独的if,既然是一个单独的if语句那么肯定不会报错了 */
if(){
....
}