【发布时间】:2015-09-17 01:56:24
【问题描述】:
对于一个有多个属性的对象,比如一只鞋可能有不同的color、size等。
现在当我们尝试展示鞋子,让客户可以选择不同的属性时,我们使用单选(最简单的):https://jsfiddle.net/mwqy6217/
但是如何根据数据使视图可用呢?
例如,当红鞋售罄时,red 收音机应该是不可选中的。不同的尺寸也是如此。
我们可以用这个数据结构来表示鞋子:{shoe:{name:'',available:['red','black','40','41']}}。
但不同的属性之间可能有关系,例如,40 码的红色鞋子已经售罄,而 40 码的黑色鞋子则没有。 我认为这个数据结构:
{shoe:{name:'',available:{color:{red:[40,41,42]},black:[42,43]}}}
因为鞋子可能有其他属性,比如“重量”,一个属性可能有 10 多个选项。
那么如何在数据库中表示这种关系,让前端工程师可以读取来构建视图呢?
更新:
https://jsfiddle.net/xqtgqzt2/
查看现场演示,所有可用选项均预定义为:
var options= [
["A1","B1","C1","D1"],
["A1","B3","D2"],
["A2","B1","C3","D2"]
];
现在如何根据选项改变单选按钮的状态?比如勾选A1时,只能勾选(启用)B1 B3,勾选A1 B1时,只能勾选C1 D1。
【问题讨论】:
-
使用你的选项数组,这意味着什么?例如:如果我选择选项 A1,我将只能选择 B1=>C1=>D1 或 B3=>D2 或其他?
-
所以也是上一级的选择,会成为以后选择的过滤器,意思是如果选择了A1-B1,用户只能选择C1-D1,即使从B1也可以选择C3-D2被选中,它会在级别之间受到更多限制吗?