2012-04-15 4 views
0

Я создал веб-службу, которая в основном представляет собой набор значений json для набора действий в моем приложении. Идея состоит в том, что она вернет из коллекции MongoDB набор ключей/значений. До сих пор возвращаемое значение несколько напоминает:JSON Autocomplete ASP.NET JQuery UI

{"d":"[{\"label\":\"Add A Customer\",\"value\":\"\/EdCustomer\/\"},{\"label\":\"View Suppliers\",\"value\":\"\/Suppliers\/\"},{\"label\":\"Add A Customer\",\"value\":\"\/EdCustomer\/\"}]"} 

У меня есть следующие Javascript/JQuery, чтобы сделать эту работу с автозаполнения, которая является частью JQuery UI:

var commands; 
    var commandstest = [ 
    { 
    value: "test1", 
    label: "test1" 
    }, 
    { 
    value: "test2", 
    label: "test2" 
    } 
]; 
    $(document).ready(function() { 
    //The search button 
    $("#btnCmdSearch") 
    .button() 
    .click(function() { 
     alert("You searched for " + txtSearch.value); 
    }); 

$.ajax({ 
    url: "http://localhost:50305/SearchCommands.svc/GetCommands", 
    dataFilter: function (data) { 
    var msg = eval('(' + data + ')'); 

    if (msg.hasOwnProperty('d')) 
     return msg.d; 
    else 
     return msg; 
    }, 
    success: function (data) { 
    commands = data; 
    } 
}); 

//The search Box AutoComplete... 
$("#txtSearch").autocomplete({ 
    source:commands, 
    minLength: 2, 
}); 

}); 

Что интересно, когда Я использую commandstest в источнике метода автозаполнения, он работает так, как ожидалось. Если я использую команды (массив json), ничего не происходит. Я посмотрел в хроме и я получаю сообщение об ошибке:

Uncaught TypeError: Property 'source' of object #<Object> is not a function 

Если изменить декларацию вар команд в:

var commands = new Array(); 

Тогда это сообщение об ошибке не появляется, но до сих пор ничего не происходит с автозаполнения. Что я делаю неправильно?

ответ

1

я думаю, что источник должен быть функцией обратного вызова, который возвращает ответ

т.е.

$("#txtSearch").autocomplete({ 
    source: function(request, response){ response(commands); }, 
    minLength: 2, 
}); 

ответ, если не работает Таты тогда им будет более внимательно взглянуть на него.

+0

Вы являетесь гением. Большое спасибо. –