2014-02-04 3 views
0

Я пытаюсь динамически генерировать значения и передавать их функции.Почему этот аргумент не работает?

Это мой код,

var color="{\"Hello\":\"#276040\"}"; 
alert(color); \\displays {"Hello":"#276040"} 
sankey.setColors(color); 

Когда я передаю переменную цвета в этой функции он терпит неудачу.

Вместо передачи аргумента, если я даю строку непосредственно, она работает.

sankey.setColors({"Hello":"#276040"}); //This works 

В чем причина? Как я могу это преодолеть?

+0

вы можете сделать скрипку? –

+4

Строковое представление объекта - это строка, а не объект. Вы смешиваете вещи. Если 'setColors' ожидает объект, вам необходимо передать объект. – elclanrs

+0

Спасибо @elclanrs, он работает .. :) –

ответ

1

сделать это как объект. string - неверные данные для этого

3

Предполагая, что динамические части ваших параметров имя ключа и значение, вы могли бы сделать что-то вроде:

var keyName = 'Hello'; 
var keyValue = '#276040'; 
sankey.setColors({ keyName: keyValue}); 
2

вара цвета содержит строку в коде, будьте осторожны, за то, что нужно sankey.setColors. "{\" Hello \ ": \" # 276040 \ "}" и {"Hello": "# 276040"} - это не те же значения.