2015-10-14 84 views
0

我是初學者knockoutJS和ASP.net MVC。KnockoutJS沒有綁定數據

一切工作正常在本地機器上,但由於我上傳腳本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

非常感謝您的幫助。

回答

1

我在加載問題頁面時收到「意外的數字」,因爲數字有逗號而不是小數點。

var DesignPercentage = 8,75 
+0

哦,謝謝,我沒有注意到這一點。似乎更新到託管服務器從開發機器弄亂這些記錄。再次感謝 –