Backbone.js,更新评级

时间:2013-10-23 07:25:37

标签: javascript backbone.js

我正在为学校建立一个小型网站,它是一个基于图像的图库,您可以在其中进行投票和评论。 目前他们都在一页上,所有人都有评级表。

所以目前默认评级正常,但我无法更新(我坦率地不知道如何) 这是它现在的样子

http://i.imgur.com/M4ZOtUG.png

用户应输入评级,然后应显示评级的新值。

我非常接近,因为我评价第一张图片3;我得到:(在我的控制台中)

“c1,3”

当我评价第4张图片5时,我得到:

“c4,5”

现在如何更新默认评级? (默认评级在我的收藏中设置)

集合中的图像示例代码

{image: "images/gifs/water.gif", rating: 5, comments: "Love the detail in this one!", title:"Water", category:"Nature"}

以下是我的看法:

gifs_html += '<td>' + "<span class=\"stars\">" + gifs[gif].get("rating") + ".0</span>" + "\n" + "<form data-id=\"" + gifs[gif].cid  + "\"><input type=\"text\" name=\"amount\" size=\"5\" value=\"\"/>" + "\n" + "<input type=\"submit\" value=\"Rate\">" + "<input type =\"hidden\" name=\"cid\" value=\"" + gifs[gif].cid + "\"> </form>" + '</td>';

然后我给这个jquery函数(更新星图)

$('span.stars').stars();

和此事件

                events:{
                'submit form':function(ev){
                    var $form = $(ev.currentTarget);

                    var id = $form.data("id");
                    var rating = $("input[name=amount]", $form).val();
                    console.log(id + ", " + rating);
                    return false;
                }

非常感谢帮助。感谢。

1 个答案:

答案 0 :(得分:1)

如果您要设置“提交表单”事件的视图是集合视图,则必须执行以下操作:

this.collection.get(id).set("rating", rating);

如果它是模型视图:

this.model.set("rating", rating);

干杯。