我使用 KnockoutJs,它很棒,但我需要一件事,但我想不通。
- 我发出一个返回 JSON 数据的 get 请求。与我的 Knockout ViewModel 相同的属性。
- 我使用映射插件将我的 JSon 结果转换为 Knockout viewModel。
这很好,但是,当然,我失去了在淘汰视图模型中定义的方法。
如何防止这种情况,以便我可以使用映射并保留我的方法?
非常感谢!
更新
这只是一个示例。也许有一些语法错误,但它应该显示我正在尝试做的事情。
我的 JavaScript
var MyViewModel = function () {
var self = this;
self.id = ko.observable();
self.subModels = ko.observableArray();
self.doSomething = function () {
alert("Hello from " + self.id());
};
};
var MySubViewModel = function () {
var self = this;
self.id = ko.observable();
self.doSomething = function () {
alert("Hello from " + self.id());
};
};
我的 C# 模型
public class MyViewModel
{
public int Id { get; set; }
public List<MySubViewModel> SubModels { get; set; }
}
public class MySubViewModel
{
public int Id { get; set; }
}
我的服务器结果
return new MyViewModel
{
Id = 1,
SubModels = new List<MySubViewModel>
{
new MySubViewModel { Id = 1 },
new MySubViewModel { Id = 2 }
}
};