экранирование фигурных скобок в шаблонах jquery и нокаут js - PullRequest
1 голос
/ 08 марта 2011

У меня есть шаблон jquery, в котором у меня есть привязка нокаута js к литералу функции, у литерала функции есть фигурные скобки внутри, и они неправильно интерпретируются механизмом шаблонов, вот шаблон:

<button {{html "data-bind='click: function(){ loadProduct(" + i + ") }'" }}>${ product.Name }</button>

Есть ли способ убрать эти скобки?Я безуспешно пробовал тег {#literal}, а также обернул все в тег {{html}}, потому что дефис в «привязке данных» также неверно интерпретируется движком.

Ответы [ 2 ]

1 голос
/ 08 марта 2011

Если вы хотите добавить атрибуты привязки данных в шаблон jQuery, вам не нужно делать столько экранирования.

Я предполагаю, что "i" в вашем случае - это циклический просмотр ваших товаров с использованием чего-то вроде {{each (i, product) Products}}. В вашем шаблоне вы можете определить этот элемент как:

<button data-bind="click: function(){ loadProduct(i); }">${product.Name}</button>

Он будет иметь доступ к переменной "i" в функции без объединения строк.

Пример здесь: http://jsfiddle.net/rniemeyer/Pq5Vd/

Спасибо.

0 голосов
/ 08 марта 2011

Вы уверены, что это проблема? Шаблоны jQuery должны распознавать только двойные фигурные скобки. Один кудрявый должен нормально работать, как здесь> http://jsfiddle.net/neebz/9fsv2/

...