簡體   English   中英

如何在淘汰賽中將元素推送到javascript對象

[英]How do i push elements to javascript object in knockout

我正在嘗試學習淘汰賽。我試圖學習foreach在淘汰賽中的約束力。

首先,我聲明了一個javascript對象

 var people = function()
 {
   var self = this;   
   this.firstname = ko.observable("")
   this.lastname = ko.observable("")
 }

我試圖將元素推入javacript對象

var x = new people();

x.push({firstName: "bob" ,lastName:'gill'}); 

我添加了viewmodel

function TestViewModel()
{
var self = this;    
this.person = ko.observableArray({people});    

}

創建了一個viewmodel實例並推送了元素

 var viewmodel = new TestViewModel(); 

viewmodel.person.push(x);

最終綁定元素

ko.applyBindings(viewmodel);

這是我嘗試實現的JSFIDDLE

http://jsfiddle.net/GSvnh/5592/

我想要以下輸出

firstname   lastname
bob          marley
tom           brady
George      clooney

您需要在JSFiddle中解決幾個問題:

  1. 您的thead HTML缺少結尾>
  2. 正如用戶nnnnnn所提到的,您正在嘗試推送到People的實例,而不是綁定到foreach的數組
  3. 您的值綁定與您的人員屬性名稱不匹配( firstname vs firstName

這是一個更新的JSFiddle,它實現了一個基本的foreach示例: http : //jsfiddle.net/GSvnh/5593/

要回答這個問題,請遵循一個示例,該示例將大量信息存儲到數據基中,並將其推入前端的數據表中。

function tableData(){
 <cfoutput>
    var newDados = #serializeJSON(mySQLData)#;
    var dataABC = newDados.ABC;
    var dataXYZ = newDados.XYZ;
  </cfoutput>
  //cfoutput is a Cold Fusion parameter to receive data from SQL.

在這種情況下,我將newDados序列化為一個對象。 ABC和XYZ是newDados的對象。

在這種情況下,我想將兩個對象的子對象混合並推入一個對象中,以一起使用這些參數。 所以我使用了forEach函數:

  allData = new Array();

  dadosABC.forEach(function(obj){
    allData.push(obj);
  });
  XYZ.forEach(function(obj){
    allData.push(obj);
  });
  //Here allData have already receiving data of both newDados object child

  allDataSize = allData.length;
  for (var i = 0; i < sizePreenc; i++) {
    allData[i] = new Array();
    tableData[i].push(allData[i]);
    tableData[i].push(allData[i].firstName);
    tableData[i].push(allData[i].lastName);
    tableData[i].push(allData[i].age);
    tableData[i].push(allData[i].gender);
  };
  drawGrid('');
 }; 

這樣,我將數據推送到表或任何我想要的數據。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM