Я использую функцию автозавершать materialize: Как делать, чтобы использовать местный JSON и наполнять один select
начиная с этого?, В официальной документации, есть один используя объект.
data: {
"Apple": "null",
"Microsoft": "null",
"Google": "http://placehold.it/250x250"
}
... и то, что я хочу использовать, что-то похожее на это...
data: [{
"field": "null",
"field2": "a",
"field3": "b",
"field4": "c"
},
{
"field": "null",
"field2": "a",
"field3": "b",
"field4": "c"
},
{
"field": "null",
"field2": "a",
"field3": "b",
"field4": "c"
}]
... но Вы не функционируете, уже я пробую форматируя информацию в value
, label
, также как и в jQueryUI, но также Вы не функционируете...
var prog = $.map(this._programasService.getProgramas(), function (i)
{
return {
label: i.field2,
value: i.field3
};
});
В конце концов закончите тем, что стройте объект, с которым он нуждался, так как каждая стоимость в моем случае единственная
ngOnInit()
{
this.programas = this._programasService.getProgramas();
var program = $.map(this._programasService.getProgramas(), function (i)
{
return {
id: i.prgprg_descripcion,
text: i.prgprg_nombre
};
});
var arr = {};
for (var i = 0; i < program.length; i++)
{
arr[program[i].id] = program[i].text;
}
$(this.el2.nativeElement).autocomplete({
data: arr
});
}
Ты попытался помещать array внутри поля первого array JSON?
Например:
data: [{
"field1": "null",
"field2": "a",
"field3": "b",
"newData": [{
"field": "null",
"field2": "a",
"field3": "b",
"field4": "c"
}]
}]
Имей в виду, что в newData podrГ-схвати вводить все arrays, что ты нуждался в просвете.
DespuГ©s podrГ-схвати соглашаться, таким образом:
label: i.newData.field2 ;
Надеялся помочь тебе. Привет
Поскольку уже вы прокомментировали, параметр восходит к plugin jQuery автозавершите materialize нуждайся в объекте ключе - стоимости.
Относительно преобразования модели, с которой ты работаешь, можешь использовать уменьши, чтобы избегать пробегать array два раза и производить более компактный код.
ngOnInit(){
this.programas = this._programasService.getProgramas();
var data = this.programas.reduce(function (accumulator, currentValue){
accumulator[currentValue.pgrpgr_descripcion] = currentValue.pgrpgr_nombre;
return accumulator;
}, {});
$(this.el2.nativeElement).autocomplete({
data: data
});
}
Заметь: Столько map, поскольку он уменьшает, они вынесены просторно, из-за того, что ты они мог бы использовать вместо функции jQuery.