2016-11-10 3 views
0

Я пытаюсь добавить новый вызов свойства в JSON, вызвав внутри него функцию. Но я получаю сообщение о том, что функция не определена. Я позвонил с использованием предложения this, но все равно получаю ту же ошибку. вот мои данные.Функция вызова внутри объекта JSON

[{ key: 1, fill:this.fillcolor(mytext),text: mytext }] 

fillColor функция возвращает код цвета, когда в зависимости от имени текста, переданного ей.

fillColor = (data) => { 

     switch (data) { 
      case 'NMP': 
       return 'indigo400'; 
      break; 
      case 'KPD': 
       return 'pinkA200'; 
      break; 
      case 'NMV': 
       return 'orangeA400'; 
      break; 
      case 'KRV': 
       return 'lightBlue400'; 
      break; 
      case 'NIP': 
       return 'yellowA200'; 
      break; 
      case 'KRU': 
       return 'lightGreenA400'; 
      break; 
      case 'UPS': 
       return 'deepPurpleA100'; 
      break; 
      case 'MK': 
       return 'brown300'; 
      break; 

      default: 
      return 'pinkA200'; 

     } 

    }; 

Я до сих пор не могу понять, почему я продолжаю получать эту ошибку. Параметр myText содержит имя/свойство.

+1

Попробуйте var fillcolor = function (data) {// ваш код}. Не добавляйте this.fillcolor просто fillcolor (данные). @ Tromesh –

+1

Что означает «объект JSON», на который ссылается ваш заголовок вопроса? В каком контексте вы определяете «fillColor»? В каком контексте вы это называете? –

ответ

0

Вы должны следовать правильной структуры JSon как

[{"data":[["1","2"],["3","4"]],"aFunction":"function(){return \"foo bar\";}"}] 

А контекст вы имеете в виду это неправильно. этот в вашем коде повторяет что-то еще.

Смежные вопросы