2017-03-14 11 views
0

変数koの値をjsオブジェクトに割り当てる方法は? 名、姓、国は今動作しません観測可能な変数変数jsに割り当てられたko観測変数

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()'を返します。

答えて

1
<a href="#" data-bind="click: Post"> 

console.log(self.name());

ko.observable()関数を作成します。値を取得するには関数として呼び出す必要があります。

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:

+0

この応答は私にとってはあまり明確ではありません。 次に、データをajax呼び出しに渡すにはどうすればよいですか? – Federico

+1

私は答えを編集しました。 – Shadowfox

関連する問題