@maximusDreddoff

Не обновляются данные внутри callback'a?

Добрый день. В проекте использую selectize.js.

У меня существует следующий метод, который направляет ajax- запрос на сервер и получает обновленные данные.

getCategoryAdCount: function (callback) {
    var that = this,
        dataToSend = {
          method: 'getCategoryAdCount',
          params: {
            productId: this.productId
          }
        };

    SJA.ajax(dataToSend, function (respond) {
          if (respond) {
            callback && callback(respond);
       }
    });
  },


Также я использую callback этой функции, который создает в поле select'a новые значения, которые берет из ответа сервера. На любое изменение на странице, я вызываю функцию getCategoryAdCount. Получаю обновленные данные с сервера.

this.getCategoryAdCount(function (categories) {
        //add selectize plugin to display multiply choice
        var values = categories.map(function (cat) {return { item : cat.id, text : cat.name + ' (' +cat.count + ')'}; });
      //id,name,count- this information I receiving from the server
        this.$filtercat.selectize({
          plugins: ['remove_button'],
          delimiter: ',',
          persist: false,
          maxItems: 5,
          options: values,
          labelField: "text",
          valueField: "item",
          sortField: 'text',
          searchField: 'text',
          create: function (input) {
            return {
              value: input,
              text: input
            }
          }
        });

Проблема в том, что в переменной values сохраняется изначальное значение. И сколько бы я не направлял новых запросов на сервер, пока не перезагружу страницу в этой переменной не будут учтены обновления. Подскажите почему так может происходить? И как от этого избавиться?
  • Вопрос задан
  • 142 просмотра
Пригласить эксперта
Ответы на вопрос 1
romy4
@romy4
Exception handler
А где тут в коде изменения values должны происходить?
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

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