2010-07-09 9 views
38

Me encuentro haciendo un montón de jQuery estos días, así que comencé a abstraer algunas de las cosas más comunes que hago en los fragmentos. Espero compartirlos con la comunidad, pero me estoy encontrando con un problema en este momento.

Los literales en los fragmentos se definen agregando signos de dólar ($) alrededor del nombre del literal para delimitar donde irá el valor que desea proporcionar. Esto es difícil porque jQuery usa la notación del signo de dólar para usar gran parte de su funcionalidad.

¿Cuál es la secuencia de escape para los fragmentos, así que puedo usar el signo de dólar y hacer que mis fragmentos sigan funcionando?

+0

Más que una nota al margen, pero no olvides que puedes usar 'jQuery' en lugar de' $ ' –

Respuesta

79

Tener un literal $ intento duplicarlo: $$

+1

No funcionó para mí en C#. –

+0

@JosephMorgan Funcionó para mí en C# (VS2015 como referencia). –

+0

Este enfoque aún mantiene el cursor saltando a esta posición cuando se utiliza la pestaña. Con esta [respuesta] (http://stackoverflow.com/a/43427442/1909798) podría escapar correctamente. – robsonrosa

6

Aunque la respuesta jQuery es válida, es una sintaxis más agradable de usar la notación $.

He encontrado una respuesta: Haciendo que el caracter $ sea literal con un valor predeterminado de $.

<Literal Editable="true"> 

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

Encontré que esto funciona en C# para usar el "$" para un tipo de cadena Formattable. –

+0

No estaba seguro de si agregar un ejemplo era un comentario o una respuesta, así que debido a la longitud, lo agregué a continuación. Está basado en esta respuesta. –

15

Hay un atributo "Delimitador" definido para un elemento de Código. Esto está predeterminado en $, pero puede establecerlo en un carácter diferente, como ~ o menos.

...

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

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

...

1

he utilizado esto para una cadena formattable en C#. He utilizado el ejemplo anterior de cory-fowler textualmente:

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

Uso (se agregan saltos de línea para mayor claridad en la pila   desbordamiento, no en el original.):

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

Gracias, Cory-Fowler !

14

Esta es la manera correcta: \\$.

VSC con el \\ interpreta que es un personaje más y no un comidin.

+5

esta respuesta debería ser la respuesta aceptada – robsonrosa

+1

No funciona en VS2017 C# – SvdSinner

+0

VSC = Visaul Studio Code –