簡體   English   中英

在Knockoutjs中動態添加行

[英]Dynamically Add Rows in Knockoutjs

我正在使用knockoutjs,我有2列資格列表和標記。 單擊“添加”按鈕后,我想生成新行,單擊“提交”按鈕后,需要顯示所選的“資格列表”和我的標記。

我這里有代碼: https//jsfiddle.net/wg3t172b/

self.QualificationLists = ko.observableArray([
      { QualName: 'Master', QualId: '0' },
      { QualName: 'Bachelor', QualId: '1' },
      { QualName: 'CA', QualId: '2' },
      { QualName: 'School Leaving', QualId: '3' }
  ]);
  self.addQualification = function () {
      self.Qualifications.push({
         QualList: "",
         QualificationLists: "",
         Marks: "",
         selectedQualName: "",
    });
  };

  self.removeQual = function (Qualification) {
     self.Qualifications.remove(Qualification);
 };

  self.save = function (form) {
     console.log(self.Qualifications());
  };
};

var viewModel = new QualificationModel();
ko.applyBindings(viewModel);

當我控制Qualification時它只顯示Marks但我的預期結果應該是QualId QualName和Marks在一個數組中。

修復選擇的范圍。 使用$parent將一個范圍從foreach綁定中的上下文中移出。

<select data-bind="options: $parent.QualificationLists, optionsText:'QualName',

編輯:澄清。 當您在foreach綁定中時,您當前的范圍是迭代中的當前項。 因為您的QualificationLists直接在您的viewmodel上,而不是實際上在您循環的項目上,您必須從父上下文調用它

暫無
暫無

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

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