我在 View 模型中定义函数时遇到问题。
我通过 jquery getJSON 获取 json 数据并将该数据映射到我的 View 模型。
$.getJSON('/Company/GetCompanies', function(data) {
var viewModel = new CompanyViewModel()
viewModel.model = ko.mapping.fromJS(data)
ko.applyBindings(viewModel)
});
下面是我的 View 模型。正如您所看到的,我想要做的是,通过名为 companyName
的函数返回 viewmodel 的属性之一。
var CompanyViewModel = function() {
var self = this;
self.companyName = function()
return model.CompanyName;
};
}
然后我想使用这个函数,如 <span data-bind="text: companyName" />
但是,JavaScript 函数不会被计算并以文本形式返回。
我浏览了网络上的 Knockout 示例,但所有这些示例都使用计算的可观察量。
有办法达到这个目的吗?谢谢。
最佳答案
试试这个:
var CompanyViewModel = function(data) {
ko.mapping.fromJS(data, {}, this);
};
CompanyViewModel.prototype.fileTaxes = function() {
console.log("Company is filing taxes.");
};
$.getJSON('/Company/GetCompanies', function(data) {
// data would look something like this:
// data: { companyName : "MicroStrategy",
// founderName : "etc" }
var viewModel = new CompanyViewModel(data);
ko.applyBindings(viewModel)
});
关于javascript - 如何在填充有 Json 数据的 knockout View 模型中定义函数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11343494/