Javascript 调用OnSuggestionRequested(win8)时出现0x800000E错误
我想在我的windows 8应用程序中编写搜索合同。基本上,除了建议列表之外,所有的事情都按它应该的那样工作。 总是在我进入函数时,如果我应该在其中添加建议,我会得到运行时错误0x800000E 我只是复制粘贴了示例中的代码,唯一的区别是从数据库加载数据Javascript 调用OnSuggestionRequested(win8)时出现0x800000E错误,javascript,search,windows-8,microsoft-metro,Javascript,Search,Windows 8,Microsoft Metro,我想在我的windows 8应用程序中编写搜索合同。基本上,除了建议列表之外,所有的事情都按它应该的那样工作。 总是在我进入函数时,如果我应该在其中添加建议,我会得到运行时错误0x800000E 我只是复制粘贴了示例中的代码,唯一的区别是从数据库加载数据 appModel.Search.SearchPane.getForCurrentView().onsuggestionsrequested = function (eventObject) { var queryText = event
appModel.Search.SearchPane.getForCurrentView().onsuggestionsrequested = function (eventObject) {
var queryText = eventObject.queryText, suggestionRequest = eventObject.request;
var query = queryText.toLowerCase();
var maxNumberOfSuggestions = 5;
mkData.getWords(eventObject.queryText, maxNumberOfSuggestions, function (suggestionList) {
for (var i = 0, len = suggestionList.length; i < len; i++) {
if (suggestionList[i].substr(0, query.length).toLowerCase() === query) {
suggestionRequest.searchSuggestionCollection.appendQuerySuggestion(suggestionList[i]);
if (suggestionRequest.searchSuggestionCollection.size === maxNumberOfSuggestions) {
break;
}
}
}
});
if (suggestionRequest.searchSuggestionCollection.size > 0) {
WinJS.log && WinJS.log("Suggestions provided for query: " + queryText, "sample", "status");
} else {
WinJS.log && WinJS.log("No suggestions provided for query: " + queryText, "sample", "status");
}
};
appModel.Search.SearchPane.getForCurrentView().onsuggestionsrequested=函数(eventObject){
var queryText=eventObject.queryText,suggestionRequest=eventObject.request;
var query=queryText.toLowerCase();
var maxNumberOfSuggestions=5;
mkData.getWords(eventObject.queryText,maxNumberOfSuggestions,函数(suggestionList){
for(var i=0,len=suggestionList.length;i0){
WinJS.log&&WinJS.log(“为查询提供的建议:”+queryText,“示例”,“状态”);
}否则{
WinJS.log&&WinJS.log(“未提供查询建议:”+queryText、“示例”、“状态”);
}
};
如果我用一个静态的建议数组交换Ajax调用,它会起作用:(
建议列表中有好的词语
我已经找到了解决方案,但只在C#中找到了。开发人员必须添加wait关键字,但在javascript中我没有这个
提前感谢!我现在自己解决了。这里是解决方案。您必须使用延迟。几乎没有记录:(
appModel.Search.SearchPane.getForCurrentView().onsuggestionsrequested = function (eventObject) {
var queryText = eventObject.queryText, suggestionRequest = eventObject.request;
var maxNumberOfSuggestions = 5;
var deferral = eventObject.request.getDeferral();
mkData.getWords(queryText, maxNumberOfSuggestions, function (suggestionList) {
suggestionRequest.searchSuggestionCollection.appendQuerySuggestions(suggestionList);
deferral.complete();
});
if (suggestionRequest.searchSuggestionCollection.size > 0) {
WinJS.log && WinJS.log("Suggestions provided for query: " + queryText, "sample", "status");
} else {
WinJS.log && WinJS.log("No suggestions provided for query: " + queryText, "sample", "status");
}
};