Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/search/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 调用OnSuggestionRequested(win8)时出现0x800000E错误_Javascript_Search_Windows 8_Microsoft Metro - Fatal编程技术网

Javascript 调用OnSuggestionRequested(win8)时出现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

我想在我的windows 8应用程序中编写搜索合同。基本上,除了建议列表之外,所有的事情都按它应该的那样工作。 总是在我进入函数时,如果我应该在其中添加建议,我会得到运行时错误0x800000E

我只是复制粘贴了示例中的代码,唯一的区别是从数据库加载数据

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");
    }
};