Materialize with Array схвати Датасоурсе

Я использую функцию автозавершать 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
    };
});
5
задан 22.10.2016, 20:54
3 ответа

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

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
    });
}
1
ответ дан 24.11.2019, 12:58
  • 1
    Está очень хорошо, который ты возвратил и напечатал как ответ твой solució n. У твоего вопроса есть 3 ответов, но получающая ни одна todaví в, хотя он не является обязательным, podrí чтобы говорить себе, что тебе остается принимать одну. – Rubén 26.02.2017, 19:37

Ты попытался помещать 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 ;

Надеялся помочь тебе. Привет

0
ответ дан 24.11.2019, 12:58

Поскольку уже вы прокомментировали, параметр восходит к 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.

0
ответ дан 24.11.2019, 12:58

Теги

Похожие вопросы