Knockout.js 长ajax调用打破敲除绑定
我正在使用durandal和knockout创建一个个人网站,并使用以下代码绑定编辑博客页面。一切都很好,我能够用ajax调用返回的文本绑定文本区域 完成后,我很好奇Web服务的长响应是否会破坏它,所以我在服务中加入了Thread.Sleep1000,现在我无法让它将返回的文本绑定到文本区域。有没有关于如何让它工作的建议 旁注:我不认为这与durandal框架有关,但我想我会包括我就是它 javascript c htmlKnockout.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
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);
});