2015-10-14 2 views
0

Я новичок для нокаута JS и ASP.net MVC.KnockoutJS не обязательные данные

Все работает нормально на локальной машине, но так как я загрузил скрипт knockoutJS привязка не работает в некоторых случаях, и я пробовал много, но не смог исправить. теперь мне нужна твоя помощь. , если вы видите, что эта система рейтинга (http://www.cepinceleme.com/Phone/Samsung-Galaxy-J5) загружена (я связываю значения с помощью knockoutJS), потому что дизайн или функции или производительность 5.0 каждый, что является полным значением. но когда вы будете оценивать его, и любое значение изменится на то, что не заполнено, например. 5.3 или 7.2 он будет привязываться к pageload через нокаут JS.

вот пример (http://www.cepinceleme.com/Phone/Samsung-Galaxy-S6), где система оценки не является обязательным значением, использующим knockoutJS в pageload.

код ниже

<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

О, спасибо, я этого даже не заметил. Кажется, что обновление до сервера хостинга от машины разработки перепутало эти записи. еще раз спасибо –

Смежные вопросы