c# - 在 Knockoutjs 中动态添加行
问题描述
我正在使用 knockoutjs,并且我有 2 列 Qualification List 和 Marks 。单击添加按钮后,我想生成新行,单击提交按钮后,它需要显示选择的资格列表和我的分数。
我在这里有代码: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
直接在您的视图模型上,而不是实际上在您正在循环的项目上,所以您必须从父上下文中调用它
推荐阅读
- python - 使用 python flask 编写一个连接和读取 azure web 应用程序上安装的存储的代码?
- oauth-2.0 - OAuth2 over HTTPS 启用负载均衡器
- r - 嵌套 for 循环中的打印输出和存储向量的结果不同。是什么赋予了?
- javascript - 捕获交易拒绝-moralis
- python - 使用 Cython 保护 Windows 中的 Python 代码
- python - 算法的 numpy 向量化以返回二进制序列中连续部分的索引
- java - 在底部导航视图上多次点击时应用程序崩溃
- java - Allure testNg:向环境部分添加细节
- lme4 - gtsummary 和 lmerTest
- python - 为什么我的 django 模板无法识别我在 views.py 文件中设置的 url 参数?