Подтвердить что ты не робот

Исключение символа $в фрагментах

В наши дни я нахожу, что занимаюсь тонкой jQuery, поэтому я начал абстрагироваться от некоторых распространенных вещей, которые я делаю в фрагментах. Я с нетерпением жду возможности поделиться ими с сообществом, но сейчас у меня проблема.

Литералы в фрагментах определяются добавлением знаков доллара ($) вокруг имени литерала, чтобы разграничить, где будет стоить значение, которое вы хотели бы предоставить. Это сложно, потому что jQuery использует нотацию знака доллара, чтобы использовать множество своих функций.

Что такое escape-последовательность для фрагментов, так что я могу использовать знак доллара и все еще мои функции?

4b9b3361

Ответ 1

Чтобы иметь буквальный $, попробуйте удвоить его: $$

Ответ 2

Существует атрибут "разделитель", определенный для элемента кода. Это значение по умолчанию равно $, но вы можете установить его на другой символ, например ~ или около того.

...

<Snippet>
<Code Language="JavaScript" Delimiter="~"><![CDATA[(function ($) {
    $(document).ready(function () {

    });
})(jQuery);]]></Code>
</Snippet>

...

Ответ 3

Это правильный путь: \\$.

VSC с \\ интерпретирует, что это символ больше, а не comidin.

Ответ 4

Несмотря на то, что ответ jQuery действителен, более сильный синтаксис используется для обозначения $.

Я нашел ответ: сделав символ $символом со значением по умолчанию $.

<Literal Editable="true">

<ID>dollar</ID> <ToolTip>replace the dollar sign character</ToolTip> <Default>$</Default> <Function> </Function> </Literal>

Ответ 5

Я использовал это для форматируемой строки в С#. Я использовал приведенный выше пример из cory-fowler дословно:

<Literal Editable="true">
    <ID>dollar</ID>
    <ToolTip>Replace the dollar sign character</ToolTip>
    <Default>$</Default>
    <Function></Function>
</Literal>

Использование (разрывы строк добавляются для ясности в Stack Overflow, а не в оригинале.):

    string errMessage = $dollar$"Error occurred in
       {MethodBase.GetCurrentMethod().Module}, in procedure
       {MethodBase.GetCurrentMethod().Name}: {ex.Message}".ToString();

Спасибо, cory-fowler!