0

我已经开始研究 Backbone.js,我似乎无法弄清楚如何为待办事项列表中的不完整事件实现高亮模式

js小提琴

每个待办事项都有一个对应其模型completed属性的复选框。

我有一个名为Highlight Incomplete的按钮,我想为每个项目添加一个类li,其模型的completed属性是false. 我希望它切换此模式,因此单击突出显示它们,然后单击删除所有突出显示。

我在模型的集合上写了一个过滤器来返回这些不完整的项目。我以为我可以使用它,但我被困在试图弄清楚它。

我不想添加另一个调用highlighted模型的属性,因为它可以从它的completed属性中推断出来,并且它只存在于它的视觉表示中。

它也应该是live,所以如果你打开了高亮模式并添加了一些新元素,它们应该被高亮显示。

我怎样才能做到这一点?

4

3 回答 3

1

让您ListView维护ItemView它在appendItem. 您的 ItemViews 代表<LI>DOM 中的 a ,并且根据我在您的样式表中看到的内容,是您想要切换highlighted类的位置。让您的 ItemViews 公开一个类似的方法highlightIfIncomplete并从中调用它ListView.getIncompleted

这是更新的小提琴:http: //jsfiddle.net/PnSPH/2/

于 2012-04-17T05:56:40.303 回答
1

如果您构建 CSS 以匹配您的 html 层次结构,并不断更新您的模型状态,您将不必担心同步问题:http: //jsfiddle.net/PnSPH/5

这个小提琴处理复选框状态:http: //jsfiddle.net/PnSPH/6/

另一种方法是坚持仅拥有.render(),但让模板处理classchecked状态

于 2012-04-17T07:20:05.897 回答
0

你不需要collection.getIncomplete ...

http://jsfiddle.net/7nX4S/1/

于 2012-04-17T06:07:26.093 回答