После пары часов, потраченных только на то, чтобы заставить Twitter отображать значения автозаполнения, мне трудно понять, как заменить все раскрывающиеся списки в действиях «Создать» и «Редактировать» в моем контроллере.
Есть пара проблем, о которых я знаю. Во-первых, как передать идентификатор (ключ) выбранного объекта в заголовок типа. Мой JSON имеет значение ключа, которое в основном является идентификатором, и значением значения, которое является именем объекта. JSON можно увидеть ниже.
[{"Key":1,"Value":"Test1"},{"Key":2,"Value":"Test2)"},{"Key":4,"Value":"Adagreb d.o.o."},{"Key":5,"Value":"AGB Nielsen."}]
После получения и преобразования JSON в массив объектов Javascript данные передаются в элемент управления, который должен отображать автозаполнение (упреждающий ввод).
var substringMatcher = function (strs) {
//ommited for brevity
};
function getJson(url) {
//ommited for brevity
}
function simpleArray(target) {
var arr = [];
$.each(target, function (i, e) {
$.each(e, function (key, val) {
arr.push(val);
console.log(val + "-" + key);
});
});
return arr;
}
function typeaheadSetup(control, data) {
$(control).typeahead({
hint: true,
highlight: true,
minLength: 2
}, {
displayKey: 'value',
source: substringMatcher(simpleArray(data))
});
}
var companies = getJson('/Ticket/GetCompanies');
typeaheadSetup('#idFirma', companies);
Мой вопрос заключается в том, как передать идентификатор (ключ) при отображении значения (значение), а также сохранить его, передав модель в базу данных.