1
这里是小提琴:http://jsfiddle.net/7RDc3/2096/淘汰赛JS的foreach电网不工作
“添加服务”按钮不起作用。我需要它来镜像“添加硬件”按钮的功能。 我的代码出现了问题:您可以在上面的提琴中看到它的动作。
var viewModel = function(hardware, services) {
var self = this;
self.hardwares = ko.observableArray(hardware);
self.services = ko.observableArray(services);
self.addHardware = function() {
self.hardwares.push({
name: "",
price: ""
});
};
self.removeHardware = function(hardware) {
self.hardwares.remove(hardware);
};
self.addService = function() {
self.services.push({
name: "",
price: ""
});
};
self.removeService = function(services) {
self.services.remove(services);
};
self.save = function(form) {
var allModel = [];
ko.utils.arrayForEach(services(), function (service) {
allOrders.push(ko.toJS(service));
});
ko.utils.arrayForEach(hardwares(), function (hardware) {
allOrders.push(ko.toJS(hardware));
});
alert("Could now transmit to server: " + ko.utils.stringifyJson(allOrders));
};
};
var FinalViewModel = new viewModel([]);
ko.applyBindings(FinalViewModel);
完美!还有一点,警报不会在提交时弹出,你可以看看吗? http://jsfiddle.net/7RDc3/2098/ – Stephen 2013-03-20 01:04:03
@StephenHarman:有几件事:1.你需要在提交按钮上单击''绑定(或者在表单本身上提交事件绑定),2.你需要遍历'self.services()'和'self.hardwares()':http://jsfiddle.net/7RDc3/2099/ – 2013-03-20 01:47:51
很好用!谢谢!只是注意到在JSON中名称选择是发送它的名称而不是值,有什么想法? – Stephen 2013-03-20 01:53:03