Knockout.js 在使用knockout.viewModel插件时,如何在扩展方法中正确引用viewModel?
我正在扩展viewModel。我需要实现Knockout.js 在使用knockout.viewModel插件时,如何在扩展方法中正确引用viewModel?,knockout.js,knockout-viewmodel-plugin,Knockout.js,Knockout Viewmodel Plugin,我正在扩展viewModel。我需要实现addEmployee方法,以便它正确地引用viewModel 这就是我迄今为止所做的: JSON: JavaScript: $.getJSON("http://localhost:58191/api/employees", function (jsonModel) { document.getElementById("test").innerText = JSON.stringify(jsonModel); var options = { e
addEmployee
方法,以便它正确地引用viewModel
这就是我迄今为止所做的:
JSON:
JavaScript:
$.getJSON("http://localhost:58191/api/employees", function (jsonModel) {
document.getElementById("test").innerText = JSON.stringify(jsonModel);
var options = {
extend: {
"{root}": function () {
var self = this;
var employees = new Array();
self.employees = ko.observableArray(employees);
var arrayTest = [{ "FirstName": "test", "LastName": "test", "Addresses": [{ "StreetNumber": "MI6", "StreetName": "Undisclosed" }, { "StreetNumber": "SAS", "StreetName": "Undisclosed" }] }];
self.addEmployee = function () {
self.employees.push(arrayTest);
}.bind(self);
}
}
}
var kovmmappingVM = ko.viewmodel.fromModel(jsonModel, options);
ko.applyBindings(kovmmappingVM, document.getElementById("POC"));
});
我将感谢任何帮助。谢谢 试试这个:
var kovmmappingVM = ko.viewmodel.fromModel(jsonModel, options);
kovmmappingVM.addEmployee = function (empl) {
kovmmappingVM.Employees.push(empl);
}
ko.applyBindings(kovmmappingVM, document.getElementById("POC"));
这项工作:
var Employee = function () {
var self = this;
self.addEmployee = function (kovmmappingVM) {
kovmmappingVM.Employees.push({
FirstName: "test",
LastName: "test",
Addresses: [{ "StreetNumber": "MI6", "StreetName": "Undisclosed" }, { "StreetNumber": "SAS", "StreetName": "Undisclosed" }]
});
model = ko.viewmodel.toModel(kovmmappingVM);
document.getElementById("test2").innerText = JSON.stringify(model);
}.bind(self);
}
$.getJSON("http://localhost:58191/api/employees", function (jsonModel) {
document.getElementById("test").innerText = JSON.stringify(jsonModel);
var options = {
extend: {
"{root}": Employee
}
};
var kovmmappingVM = ko.viewmodel.fromModel(jsonModel, options);
ko.applyBindings(kovmmappingVM, document.getElementById("POC"));
});
您的代码是否引发错误?不,它不会引发任何异常。您遇到的问题是…当我单击调用addEmployee函数的按钮时,它似乎没有用新记录更新viewmodel。我的目标是向Employees collectioninteresting添加新记录,我来试一试:)选项参数呢?你打算保留吗?@user3699387取决于你是否有其他选择你的帮助是有用的。我正在学习这个图书馆,所以我可以再次向你寻求帮助。非常感谢兄弟:)@user3699387好吧,当我回答你的问题时你可以投票:)很高兴我的答案有用
var Employee = function () {
var self = this;
self.addEmployee = function (kovmmappingVM) {
kovmmappingVM.Employees.push({
FirstName: "test",
LastName: "test",
Addresses: [{ "StreetNumber": "MI6", "StreetName": "Undisclosed" }, { "StreetNumber": "SAS", "StreetName": "Undisclosed" }]
});
model = ko.viewmodel.toModel(kovmmappingVM);
document.getElementById("test2").innerText = JSON.stringify(model);
}.bind(self);
}
$.getJSON("http://localhost:58191/api/employees", function (jsonModel) {
document.getElementById("test").innerText = JSON.stringify(jsonModel);
var options = {
extend: {
"{root}": Employee
}
};
var kovmmappingVM = ko.viewmodel.fromModel(jsonModel, options);
ko.applyBindings(kovmmappingVM, document.getElementById("POC"));
});