起步软件技术论坛
搜索
 找回密码
 注册

QQ登录

只需一步,快速开始

查看: 4254|回复: 12

[结贴] 当一个列表中存在多种表现形式时应该如何处理

  [复制链接]

33

主题

122

帖子

299

积分

中级会员

Rank: 3Rank: 3

积分
299
QQ
发表于 2015-11-17 16:45:34 | 显示全部楼层 |阅读模式
请问当一个列表中存在多种表现形式时应该如何处理,具体样式如下: QQ截图20151117164320.jpg

这是一个新闻类的App,新闻表现形式有三种,中间还要穿插一些推广位,也就是说,在一个列表中可能同时存在四种列表项,这个应该怎么处理???
望大神指点
发表于 2015-11-17 17:05:08 | 显示全部楼层
我说一种方案!就是list的li下放置你需要显示的各种样式!然后设置他们的bind-visible属性!
这个属性最好是绑定一个data字段(Boolean类型的)!然后给这个字段设置计算规则!控制是显示那种样式!
一行只显示一种样式,其它隐藏!这样就可以随意切换显示各种样式了!
但是缺点是html代码会比较庞大!会多很多无用代码!
qq:1912779713
WeX5教程--WeX5下载
回复 支持 反对

使用道具 举报

33

主题

122

帖子

299

积分

中级会员

Rank: 3Rank: 3

积分
299
QQ
 楼主| 发表于 2015-11-17 17:13:51 | 显示全部楼层
我的想法是这样的,如果可以根据新闻的类型动态创建组件就把需要的样式做成组件,然后在列表加载时再根据类型计算规则动态创建组件,不知道可行?
回复 支持 反对

使用道具 举报

4

主题

1579

帖子

2706

积分

内部用户

积分
2706
发表于 2015-11-17 17:39:04 | 显示全部楼层
可以使用bind-if实现,使用根据类型相关的表达式就可以
回复 支持 反对

使用道具 举报

33

主题

122

帖子

299

积分

中级会员

Rank: 3Rank: 3

积分
299
QQ
 楼主| 发表于 2015-11-17 20:27:53 | 显示全部楼层
也就是说,用自定义组件的方式来处,然后用bind-if来动态创建相应组件吧,谢谢了,接下来试验成功了再把详情步骤发上来
回复 支持 反对

使用道具 举报

发表于 2015-11-18 09:14:12 | 显示全部楼层
ljgood09 发表于 2015-11-17 20:27
也就是说,用自定义组件的方式来处,然后用bind-if来动态创建相应组件吧,谢谢了,接下来试验成功了再把详 ...

我理解的意思是在我二楼回复的基础上,将bind-visible换成了dind-if
这样就是符合条件的代码才会显示!不符合条件的将会被忽略!不会生成相应代码!
qq:1912779713
WeX5教程--WeX5下载
回复 支持 反对

使用道具 举报

33

主题

122

帖子

299

积分

中级会员

Rank: 3Rank: 3

积分
299
QQ
 楼主| 发表于 2015-11-25 17:38:14 | 显示全部楼层
本帖最后由 ljgood09 于 2015-11-25 17:42 编辑

样式已经做出来了,但是遇到了比较麻烦的问题,我先说一下我的思路,我的想法是,把新闻样式中所用到的各个小组件的html代码封装成JS函数,方便重用,根据传的值动态生成,再通过一个模板函数做入口在相应的地方调用封装小组件JS函数,最终生成整体的新闻样式行html代码。参考过组件的代码,内部貌似也是这样做的。
现在遇到的问题是:
1、不管是Bind-if还是Bind-visible我都无法实现多分支(3个以上)执行,我目前用到的新闻列表样式就已经有4种了,说不定以后还会添加,应该用什么方式来实现根据新闻类型进行多分支判断并执行。
2、因为没有做组件的数据字段绑定,只做了data与list.data的绑定,数据绑定后无任何操作的前提下如何获取每一行(list.li)的数据。
回复 支持 反对

使用道具 举报

发表于 2015-11-25 17:52:55 | 显示全部楼层
ljgood09 发表于 2015-11-25 17:38
样式已经做出来了,但是遇到了比较麻烦的问题,我先说一下我的思路,我的想法是,把新闻样式中所用到的各个 ...

你这样写的复杂了吧!
组件的动态生成是编译时执行的!而你自己写的js是运行时执行的!
简单的做法还是:
在list组件的li节点下放置多个row组件!每个row中放置一种样式的显示!然后给每个row设置bind-if属性!
根据当前行字段的类控制它是否生成就可以了!多么简单的逻辑呢!
qq:1912779713
WeX5教程--WeX5下载
回复 支持 反对

使用道具 举报

33

主题

122

帖子

299

积分

中级会员

Rank: 3Rank: 3

积分
299
QQ
 楼主| 发表于 2015-11-26 16:32:41 | 显示全部楼层
我按照你的方法试了,总是报错,错误信息截图如下: QQ截图20151126162522.jpg

提示newsData没有定义,但是我把组件放到list之外就可以正常显示,不明白是什么地方出问题了以下是工作区的截图
QQ截图20151126162832.jpg

bind-if:试过这几种写法都不行
1、$model.newsData.val("fNewClass") =="A"   报错
2、newsData.val("fNewClass") =="A"   报错
3、$object.newsData.val("fNewClass") =="A"    还是报错
不知道该怎么写这个表达式

回复 支持 反对

使用道具 举报

91

主题

13万

帖子

3万

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
35942
发表于 2015-11-26 18:10:11 | 显示全部楼层
val("fNewClass") =="A"看看
远程的联系方法QQ1392416607,添加好友时,需在备注里注明其论坛名字及ID,公司等信息
发远程时同时也发一下帖子地址,方便了解要解决的问题  WeX5教程  WeX5下载



如按照该方法解决,请及时跟帖,便于版主结贴
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则

小黑屋|手机版|X3技术论坛|Justep Inc.    

GMT+8, 2024-5-19 00:57 , Processed in 0.067041 second(s), 26 queries .

Powered by Discuz! X3.4

© 2001-2013 Comsenz Inc.

快速回复 返回顶部 返回列表