Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/jquery/68.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript stringify(ComplexArray)返回一个空字符串_Javascript_Jquery_Knockout.js - Fatal编程技术网

Javascript stringify(ComplexArray)返回一个空字符串

Javascript stringify(ComplexArray)返回一个空字符串,javascript,jquery,knockout.js,Javascript,Jquery,Knockout.js,我有以下使用JQuery和Knockout的JavaScript(我有将这两种语言结合使用的具体原因) 因为self.items是一个敲除可观察项,所以应该使用敲除函数.toJS()来获取值:ko.toJS(self.items) 或者,如果要将项目直接转换为JSON,可以使用.toJSON() 我相信您有很好的理由一起使用jQuery和Knockout,但由于这个原因,您的代码很难理解。尝试使用self.items()获取self.items的值items数组是否实际包含任何值?您是否尝试过使

我有以下使用JQuery和Knockout的JavaScript(我有将这两种语言结合使用的具体原因)


因为
self.items
是一个敲除可观察项,所以应该使用敲除函数
.toJS()
来获取值:
ko.toJS(self.items)

或者,如果要将项目直接转换为JSON,可以使用
.toJSON()


我相信您有很好的理由一起使用jQuery和Knockout,但由于这个原因,您的代码很难理解。尝试使用self.items()获取self.items的值items数组是否实际包含任何值?您是否尝试过使用Firebug/Chrome开发工具进行调试?太棒了!事实上,我几天前就知道了这一点,但我日夜都在忙着制定最后期限——在这个过程中我忘记了这一点。谢谢你指出这一点,这正是我所需要的!我将为任何需要我的新工作代码的人发布它。我想我需要补上一些睡眠。
$(document).ready(
  function () {
      var Crime = function (Id, CaseNumber, DateOfIncident, Description) {
          var self = this;
          self.Id = Id;
          self.CaseNumber = CaseNumber;
          self.DateOfIncident = DateOfIncident;
          self.Description = Description;
      }

      var CrimesViewModel = function () {
          var self = this;
          //Data
          self.items = ko.observableArray()

          //operations
          addCrime = function () {
              if ($("#AddCrimeForm").valid()) {
                  crime = new Crime(0,
                      $("#AddCrimeForm #CaseNumber").val(),
                      $("#AddCrimeForm #DateOfIncident").val(),
                      $("#AddCrimeForm #Description").val());

                  self.items.push(this.crime);

                  $("#AddCrimeForm #CaseNumber").val("");
                  $("#AddCrimeForm #DateOfIncident").val("");
                  $("#AddCrimeForm #Description").val("");
              }
          }

          self.removeCrime = function (item) {
              self.items.remove(item);
          }

          loadCrimes = function (JSONstring) {
              try {
                  self.JSONItems = JSON.parse(JSONstring);
                  if (self.JSONItems != null)
                      if (self.JSONItems != null)
                          for (i = 0; i < self.JSONItems.length; i++)
                              self.items.push(self.JSONItems[i]);
              }
              catch (e) {
                  alert(e.message + "\n\n" + e.description + "\n\n" + e.stack)
              }
          }

          getCrimes = function () {
              var self = this;
              return JSON.stringify(self.items);
          }

      }

      var CrimesVM = new CrimesViewModel()

      ko.applyBindings(CrimesVM, $("#CrimeList")[0])

  }
);
$(document).ready(
  function () {
      var Crime = function (Id, CaseNumber, DateOfIncident, Description) {
          var self = this;
          self.Id = Id;
          self.CaseNumber = CaseNumber;
          self.DateOfIncident = DateOfIncident;
          self.Description = Description;
      }

      var CrimesViewModel = function () {
          var self = this;
          //Data
          self.items = ko.observableArray()

          //operations
          addCrime = function () {
              if ($("#AddCrimeForm").valid()) {
                  crime = new Crime(0,
                      $("#AddCrimeForm #CaseNumber").val(),
                      $("#AddCrimeForm #DateOfIncident").val(),
                      $("#AddCrimeForm #Description").val());

                  self.items.push(this.crime);

                  //Update the correspoding hidden field
                  $("#CrimeCollection_New").val(ko.toJSON(self));

                  $("#AddCrimeForm #CaseNumber").val("");
                  $("#AddCrimeForm #DateOfIncident").val("");
                  $("#AddCrimeForm #Description").val("");                  
              }
          }

          self.removeCrime = function (item) {
              self.items.remove(item);
              //Update the correspoding hidden field
              $("#CrimeCollection_New").val(ko.toJSON(self));
          }

          loadCrimes = function (JSONstring) {
              try {
                  self.JSONItems = JSON.parse(JSONstring);
                  if (self.JSONItems != null)
                      if (self.JSONItems != null)
                          for (i = 0; i < self.JSONItems.length; i++)
                              self.items.push(self.JSONItems[i]);
              }
              catch (e) {
                  alert(e.message + "\n\n" + e.description + "\n\n" + e.stack)
              }
          }



      }

      var CrimesVM = new CrimesViewModel()

      ko.applyBindings(CrimesVM, $("#CrimeList")[0])

  }
);