【问题标题】:ko observable variable assigned to a variable jsko observable 变量赋值给变量 js
【发布时间】:2017-08-04 14:39:25
【问题描述】:

如何将变量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()'。

【问题讨论】:

    标签: jquery html ajax knockout.js


    【解决方案1】:

    console.log(self.name());

    ko.observable() 创建一个函数。您需要将其作为函数调用以获取值。

    【讨论】:

      【解决方案2】:

      将你的方法移动到对象中。

      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">
      

      【讨论】:

      • 这个回复对我来说不是很清楚。那么,如何将数据传递给 ajax 调用呢?
      猜你喜欢
      • 2021-12-04
      • 1970-01-01
      • 1970-01-01
      • 2020-07-31
      • 2021-12-31
      • 2020-06-26
      • 2014-04-30
      • 1970-01-01
      • 2021-11-19
      相关资源
      最近更新 更多