首先看看这个:
这是Knckoutjs + Jquery Raty Plugin
假设这些是数据库中的列:
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是一个不同的故事。
答案 0 :(得分:1)
您可以使用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>