【问题标题】:KnockoutJS not binding dataKnockoutJS 不绑定数据
【发布时间】:2016-01-13 00:49:31
【问题描述】:

我是 knockoutJS 和 ASP.net MVC 的初学者。

在本地机器上一切正常,但自从我上传脚本后,knockoutJS 绑定在某些情况下不起作用,我尝试了很多但未能修复。现在我需要你们的帮助。 如果您看到此 url (http://www.cepinceleme.com/Phone/Samsung-Galaxy-J5) 评级系统已加载(我使用 knockoutJS 绑定值),因为设计或功能或性能各 5.0,这是完整的价值。但是当您对其进行评分时,任何价值都会更改为不完整的东西,例如5.3 或 7.2 将通过 knockoutJS 在页面加载时绑定。

这是一个示例 (http://www.cepinceleme.com/Phone/Samsung-Galaxy-S6),其中评级系统未在页面加载时使用 knockoutJS 绑定值。

代码如下

<script type="text/javascript">
function AppViewModel() {
    var self = this;
    self.MobileId = ko.observable(7413);
    self.TotalVotes = ko.observable(4);
    self.DesignVal = ko.observable(8,75);
    self.FeatureVal = ko.observable(8,75);
    self.PerformanceVal = ko.observable(8,375);


    var DesignPercentage = 8,75
    self.percentageDesign = ko.observable('<div class="progress-bar progress-bar-danger" role="progressbar" aria-valuenow="' + (DesignPercentage * 10) + '" aria-valuemin="0" aria-valuemax="100" style="width:' + (DesignPercentage * 10) + '%">' +(DesignPercentage.toFixed(1)) + '</div>');

    var FeaturesPercentage = 8,75
    self.percentageFeatures = ko.observable('<div class="progress-bar progress-bar-warning" role="progressbar" aria-valuenow="' + (FeaturesPercentage * 10) + '" aria-valuemin="0" aria-valuemax="100" style="width:' + (FeaturesPercentage * 10) + '%">' + (FeaturesPercentage.toFixed(1)) + '</div>');

    var PerformancePercentage = 8,375
    self.percentagePerformance = ko.observable('<div class="progress-bar progress-bar-success" role="progressbar" aria-valuenow="' + (PerformancePercentage * 10) + '" aria-valuemin="0" aria-valuemax="100" style="width:' + (PerformancePercentage * 10) + '%">' + (PerformancePercentage.toFixed(1)) + '</div>');

    self.Thanks = ko.observable("");
    self.designvalues = ko.observableArray(["1", "2", "3", "4", "5", "6", "7", "8", "9", "10"]);
    self.designSelectedValue = ko.observable("5");

    self.featuresvalues = ko.observableArray(["1", "2", "3", "4", "5", "6", "7", "8", "9", "10"]);
    self.featuresSelectedValue = ko.observable("5");

    self.performancevalues = ko.observableArray(["1", "2", "3", "4", "5", "6", "7", "8", "9", "10"]);
    self.performanceSelectedValue = ko.observable("5");

    self.vote = function () {
        var mydata = { id: self.MobileId(), totalVotes: self.TotalVotes(), voteDesign: self.designSelectedValue(), voteFeatures: self.featuresSelectedValue(), votePerformance: self.performanceSelectedValue() }
        self.save(mydata);
        self.Thanks("Thanks for voting");
        self.hasClicked(true);
    };


    self.hasClicked = ko.observable('False' != 'False');
    self.save = function (mydata) {
        $.post('/PhoneSingle/VoteSave', mydata, function (data) {
            self.TotalVotes(self.TotalVotes() + 1);

            var newDesignValue = ((self.DesignVal() + parseFloat(self.designSelectedValue())) / 2.0).toFixed(1)
            var newFeaturesValue = ((self.FeatureVal() + parseFloat(self.featuresSelectedValue())) / 2.0).toFixed(1)
            var newPerformanceValue = ((self.PerformanceVal() + parseFloat(self.performanceSelectedValue())) / 2.0).toFixed(1)
            self.percentageDesign('<div class="progress-bar progress-bar-danger" role="progressbar" aria-valuenow="' + (newDesignValue * 10) + '" aria-valuemin="0" aria-valuemax="100" style="width:' + (newDesignValue * 10) + '%">' + newDesignValue + '</div>');
            self.percentageFeatures('<div class="progress-bar progress-bar-warning" role="progressbar" aria-valuenow="' + (newFeaturesValue * 10) + '" aria-valuemin="0" aria-valuemax="100" style="width:' + (newFeaturesValue * 10) + '%">' + newFeaturesValue + '</div>');
            self.percentagePerformance('<div class="progress-bar progress-bar-success" role="progressbar" aria-valuenow="' + (newPerformanceValue * 10) + '" aria-valuemin="0" aria-valuemax="100" style="width:' + (newPerformanceValue * 10) + '%">' + newPerformanceValue + '</div>');
        });
    };
}
var viewModel = AppViewModel();
ko.applyBindings(viewModel);

设计值为:8.7

特征值为:8.7

性能值为:8.3

非常感谢您的帮助。

【问题讨论】:

    标签: javascript asp.net-mvc knockout.js asp.net-mvc-5


    【解决方案1】:

    我在加载问题页面时收到“意外数字”,因为数字有逗号而不是小数点。

    var DesignPercentage = 8,75
    

    【讨论】:

    • 哦,谢谢,我什至没有注意到这一点。似乎从开发机器更新到托管服务器弄乱了这些记录。再次感谢
    猜你喜欢
    • 1970-01-01
    • 2013-12-22
    • 2017-10-18
    • 1970-01-01
    • 1970-01-01
    • 2013-02-18
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多