解决nockout.js Ajax请求返回的结果,Model不能更新

由于Ajax返回之后需要重新问nockout相关属性赋值,首先属性应该被定义为observable属性,在Ajax返回值之后需要重新bind,代码如下:

    <script type="text/javascript">
        function ViewModel() {
            var self = this;
            self.email = ko.observable();
            self.password = ko.observable();
            self.username = ko.observable();

            self.Login = function () {
                $.ajax({
                    type: "post",
                    dataType: "json",
                    url: "/Home/Login/",
                    data: {
                        email: self.email(),
                        password: self.password()
                    },
                    success: function (json) {
                        if (json.Result) {
                            self.username = json.user.username;
                            ko.applyBindings(self);
                            $(‘.form-login‘).css(‘display‘, ‘none‘);
                            $(‘.login-info‘).css(‘display‘,‘block‘);
                            return false;
                        }
                        if (!json.Result) {
                            alert(‘login error‘); return false;
                        }
                    }
                });
            }
        }

        $(function () {
            var vm = new ViewModel();
            ko.applyBindings(vm);
        })
    </script>

  

时间: 2024-12-11 19:53:21

解决nockout.js Ajax请求返回的结果,Model不能更新的相关文章

ajax请求返回Json字符串运用highcharts数据图表展现数据

[1].[图片] Json字符串和highcharts数据图表展现.jpg 跳至 [1] [2] [2].[代码] Json字符串和highcharts数据图表展现 跳至[1] [2] 001 /* 002 * Filename: OQtyOrPriceReport.js 003 * Description:客户订单数量和价格报表分析 004 * Created: 2013.11.14 005 * Author : liangjw 006 * Company:Copyright (C) 2013

ajax请求返回数据,模板中的数据处理

/*ajax请求返回数据,模板中的数据处理*/ function QueryGameAsset(){ var new_start_time=$('#new_start_time').val();//开始时间 var new_end_time=$('#new_end_time').val();//结束时间 if(!new_start_time||!new_end_time){ alert("时间不能为空"); return false; } $.ajax({ url:'/Statisti

js ajax请求传token

js  ajax请求传token 方法一: headers: { Authorization: "BasicAuth " + token } 方法二: beforeSend: function (xhr) { xhr.setRequestHeader('Authorization', 'BasicAuth ' +token); } 原文地址:https://www.cnblogs.com/zlp520/p/9645951.html

Chrome 调试AJAX请求返回的JS脚本

有时候会使用AJAX请求加载局部的Html页面,这个时候如果想调试局部页面中的js就比较麻烦,现在暂时发现了两种方法.第一种是在js代码中想要断点的地方加debugger,这样代码执行到此处会进入断点.此时你会发现进入断点的js文件名称是VM+数字,关于Chrome的VMJS脚本可以查看这个文档.Chrome VM B乎的解释 除了增加debugger这种略显麻烦的方式外,还有另外一种调试的方式.那就是在脚本首部增加这行代码. //# sourceURL=名字随意起.js 经测试,在Chrome

SpringMVC使用Ajax请求返回中文乱码

前言: 最近在写一个JavaWeb后台时采用了spring+MyBatis+MySQL的方式.记录下遇到的关键问题 接口返回数据相关 使用@ResponseBody后返回NUll 说明:刚把后台运行起来,兴高采烈的测试接口数据,结果无论如何都是返回null, 最终通过各种百度,发现原来是没有引入关键的Jar包. 解决办法: 需要引入jackson的jar包(jackson core和jackson mapper),引入后 图: 使用@RequestMapping返回中文乱码 原因分析:(网上基本

Ajax请求返回Json数据

介绍一下用Ajax向服务器请求数据的方法,以及对于返回的Json数据的使用. 1 $.ajax({ 2 type:"post", 3 async:false, 4 url: ******** 5 data:{"province":$("#provice").val(), 6 "city":$("#city").val(), 7 "area":$("#area").va

jquery发送ajax请求返回数据格式

1 jquery向服务器发送一个ajax请求后,可以返回多种类型的数据格式,包括:html,xml,json,text等. 2 3 1.html格式的数据 4 5 "<div class='comment'><h6> "+username+" :</h6><p class='para'> "+content+" </p></div>" 6 7 服务器端返回数据格式是html片

当跨域时,js ajax 请求出现options请求

上面有文章说过http的options. 查了很久.试了很多版本的jQuery,下面这段代码在同事的机子上测试是没有问题的.正常 的请求, 一在我机子上面就会出现option,网上说先向服务器预检等.为什么在同事的机子上面是正常的呢..最后查出原因.是我在html页面还引入了一个全局的js文件,里面有一个全局配置crossDomain:false,于是我在ajax请求是加上crossDomain:true,就OK了..让其请求是跨域请求. postdata:function(t,i){ var

ajax请求返回map,并遍历

最近老用到ajax请求数据,但是每次都遇到一点梗,浪费了些许时间,所以记录下来. $.ajax({ type: "POST", url: "<%=path%>/account/queryRolesAndGroups.action", data: "enterpriseId="+eid, success: function(msg){ var obj=eval("(" + msg + ")");