如何将变量ko的值赋给js对象? 姓名,姓氏和国家是可观察的变量
var ViewModel = function() {
var self=this;
self.name=ko.observable();
self.surname=ko.observable();
self.counrty=ko.observable();
};
ko.applyBindings(vm = new ViewModel());
function myFunction(){
console.log(self.name);
console.log(self.surname);
console.log(self.country);
var tipo= {
name: self.nome,
surname: self.surname,
country: self.country,
};
$.ajax({
url : "",
type : "POST",
dataType : 'json',
contentType : "application/json",
data : JSON.stringify(tipo)
}).done(function(response) {
alert(response);
reloadKendoGrid($("#grid"));
}).error(function(jqXHR, textStatus, error){
alert(error);
});
}
现在不行! self.name,self.surname和self.country返回'function c()'。
答案 0 :(得分:1)
将您的方法移到对象中。
JS:
var ViewModel = function() {
var self=this;
self.name=ko.observable();
self.surname=ko.observable();
self.country=ko.observable();
self.toJSON = function() {
return { name: self.name(), surname: self.surname(), country: self.country() }
};
self.Post = function() {
$.ajax({
url : "",
type : "POST",
dataType : 'json',
contentType : "application/json",
data : self.toJSON(),
}).done(function(response) {
alert(response);
reloadKendoGrid($("#grid"));
}).error(function(jqXHR, textStatus, error){
alert(error);
});
}
return self;
}
ko.applyBindings(vm = new ViewModel());
HTML:
<a href="#" data-bind="click: Post">
答案 1 :(得分:1)
console.log(self.name());
ko.observable()创建一个函数。您需要将其称为函数以获取值。