Knockout.js 长ajax调用打破敲除绑定

Knockout.js 长ajax调用打破敲除绑定,knockout.js,asp.net-web-api,knockout-mapping-plugin,durandal,Knockout.js,Asp.net Web Api,Knockout Mapping Plugin,Durandal,我正在使用durandal和knockout创建一个个人网站,并使用以下代码绑定编辑博客页面。一切都很好,我能够用ajax调用返回的文本绑定文本区域 完成后,我很好奇Web服务的长响应是否会破坏它,所以我在服务中加入了Thread.Sleep1000,现在我无法让它将返回的文本绑定到文本区域。有没有关于如何让它工作的建议 旁注:我不认为这与durandal框架有关,但我想我会包括我就是它 javascript c html ajax调用是一项异步任务,因此您应该返回一个承诺。这样做会让Duran

我正在使用durandal和knockout创建一个个人网站,并使用以下代码绑定编辑博客页面。一切都很好,我能够用ajax调用返回的文本绑定文本区域

完成后,我很好奇Web服务的长响应是否会破坏它,所以我在服务中加入了Thread.Sleep1000,现在我无法让它将返回的文本绑定到文本区域。有没有关于如何让它工作的建议

旁注:我不认为这与durandal框架有关,但我想我会包括我就是它

javascript

c

html


ajax调用是一项异步任务,因此您应该返回一个承诺。这样做会让Durandal等待ajax调用完成

return $.ajax(
    {
        type: "GET",
        url: '/api/blog/get',
        data: { id: id },
        dataType: "json",
    })
.then(function(data){
    ko.mapping.fromJS(data, postObservable);
});

ajax调用是一项异步任务,因此您应该返回一个承诺。这样做会让Durandal等待ajax调用完成

return $.ajax(
    {
        type: "GET",
        url: '/api/blog/get',
        data: { id: id },
        dataType: "json",
    })
.then(function(data){
    ko.mapping.fromJS(data, postObservable);
});

有任何绑定错误吗?您可以尝试使用var postObservable=ko.mapping.fromJS{content:};没有绑定错误。如果Thread.Sleep1000不存在,它可以正常工作。是否存在任何绑定错误?您可以尝试使用var postObservable=ko.mapping.fromJS{content:};没有绑定错误。如果线程不在那里,它工作得很好。Sleep1000工作得很好,谢谢!我花了一段时间才看到代码中的差异,所以对于那些有类似问题的人,只需在ajax之前放一个return,它就会同步执行!我花了一段时间才看到代码中的差异,所以对于那些有类似问题的人,只需在ajax之前放置一个返回,它就会同步执行。
<section>
    <div class="row">
        <textarea class="sceditor span12" data-bind="html: post.content"></textarea>
    </div>
    <div class="row">
        <button type="button" class="btn offset10 span1">Cancel</button>
        <button type="button" class="btn btn-primary span1">Save</button>
    </div>
</section>
return $.ajax(
    {
        type: "GET",
        url: '/api/blog/get',
        data: { id: id },
        dataType: "json",
    })
.then(function(data){
    ko.mapping.fromJS(data, postObservable);
});