javascript - KnockoutJs - 计算数据库评级

标签 javascript jquery knockout.js raty

首先看一下:

http://pastebin.com/823NMiWc

这是 Knckoutjs + Jquery Raty 插件

假设这些是数据库中的列:

story_rev: ko.observable(),
animation_rev: ko.obervable(),
sound_rev: ko.observable(),
characters_rev: ko.observable(),
enjoyment_rev: ko.observeable(),

这些基本上是数据库中基于评级的事件,范围从 0-5,步长为 0.5(数字输入)

有谁知道如何计算 5 个评分的平均值吗?我有点知道如何通过 jquery 做到这一点,但 knockoutjs 对我来说是一个不同的故事。

最佳答案

您可以使用 computed observable计算平均值。

function AppViewModel() {
    var self = this;
 
    self.story_rev = ko.observable();
    self.animation_rev = ko.observable();
    self.sound_rev = ko.observable();
    self.characters_rev = ko.observable();
    self.enjoyment_rev = ko.observable();
    
    self.averageRating = ko.computed(function() {
        var ratings = [self.story_rev(), self.animation_rev(), self.sound_rev(), self.characters_rev(), self.enjoyment_rev()];
        
        return ratings.reduce(function(a, b) {
            return a + parseInt(b, 10);
        }) / ratings.length;
    });
}

var model = new AppViewModel();

model.story_rev(1);
model.animation_rev(2);
model.sound_rev(3);
model.characters_rev(4);
model.enjoyment_rev(5);

//Should output the average (in this case 3)
console.log(model.averageRating());
<script src="https://cdnjs.cloudflare.com/ajax/libs/knockout/3.2.0/knockout-min.js"></script>

关于javascript - KnockoutJs - 计算数据库评级,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28731334/

相关文章:

javascript - 图像返回值 "null"

JQUERY:当两个字段更改其值时触发提交按钮

jquery - 为什么需要访问子级来获取 $ ("body"中的最后一个元素)

javascript - 使用挖空样式绑定(bind)隐藏表格行

javascript - 在 KnockoutJS 中将数据推送到数组时出现问题

javascript - 将参数传递给 node.js 中的 async.parallel

javascript - Postman - 如何计算 JSON 响应中特定对象的出现次数

javascript - 使用 CSS 列在 epub 上工作,关于分页

javascript - 使用 knockout.js 将 css 类绑定(bind)到 Observable Array item.chosen 值

jquery - <按钮> 在 IE7 中