【发布时间】:2015-04-10 03:58:44
【问题描述】:
我正在使用 Knockout jQuery 和 Require 在 Durandal 开发一个 SPA。我的问题是当我对我的 API 进行 ajax 调用时,我实际上并没有在 .then 语句之外获取我的数据(当我用下面注释掉的行替换我的 Get 方法时)。但是,如果我使用当前调用我不能使用 .then 它给我一个类型未定义的错误。我看过 Durandal,他们解释了如何使用 Q,我有它并在我的主目录中引用。不确定提到的补丁here
var getSearchResult = function (dataHolder,text) {
//return $.getJSON('/Api/Data/GetSearchItem/' + text).done();
jQuery.support.cors = true;
$.ajax({
url: '/Api/Data/GetItem/' + text,
type: 'GET',
dataType: 'json',
success: function (data) {
dataHolder(data);
var check = dataHolder();
return dataHolder();
},
error: function (e) {
}
});
};
我这样调用方法:
var search = function (searchText) {
dtx.getSearchResult(searchResult, searchText).then(function () {//(searchResult is an observableArray
searchFlag(true);
var test = searchResult();//i get data here
searchTxt(searchText);
});
var test1 = searchResult();//no data here
};
【问题讨论】:
标签: jquery knockout.js single-page-application q durandal-2.0