AngularJS-Twig가 더블컬리브레이트와 경합합니다.
아시다시피 angular와 twig는 모두 공통 제어 구조인 이중 곱슬 괄호를 가지고 있습니다.Angular의 기본값을 변경하려면 어떻게 해야 합니까?
Twig에서는 할 수 있지만 일부 프로젝트에서는 JS만 할 수 있습니다.
다음을 사용하여 시작 및 끝 보간 태그를 변경할 수 있습니다.interpolateProvider
서비스.이 경우 모듈 초기화 시 편리합니다.
angular.module('myApp', []).config(function($interpolateProvider){
$interpolateProvider.startSymbol('{[{').endSymbol('}]}');
});
https://docs.angularjs.org/api/ng/provider/$interpolateProvider
이 질문에는 답변이 있는 것처럼 보이지만, 아직 언급되지 않은 보다 우아한 해결책은 다음과 같이 곱슬곱슬한 괄호를 따옴표로 묶는 것입니다.
{{ '{{myModelName}}' }}
콘텐츠에 변수를 사용하는 경우 대신 다음을 수행합니다.
{{ '{{' ~ yourvariable ~ '}}' }}
큰따옴표가 아닌 작은따옴표를 사용해야 합니다.큰따옴표를 사용하면 Twig에 의한 문자열 보간이 가능하므로 특히 식을 사용하는 경우 내용에 더욱 주의해야 합니다.
그래도 이 모든 곱슬곱슬한 괄호가 보기 싫으면 간단한 매크로를 생성하여 프로세스를 자동화할 수도 있습니다.
{% macro curly(contents) %}
{{ '{{' ~ contents ~ '}}' }}
{% endmacro %}
파일을 파일로 저장하고 템플릿으로 가져옵니다.사용하고 있다ng
짧고 달콤하기 때문에 그 이름을 위해.
{% import "forms.html" as ng %}
또는 매크로를 템플릿 상단에 배치하고 _self로 Import할 수 있습니다(여기를 참조).
{% import _self as ng %}
다음으로 다음과 같이 사용합니다.
{{ ng.curly('myModelName') }}
출력은 다음과 같습니다.
{{myModelName}}
트위그와 함께 MtHaml을 사용하는 사람들에 대한 후속 조치입니다.MtHaml은 Angular를 사용할 수 있습니다.모든 Twig 코드가 {{ }}이(가) 아닌 - 및 =를 통해 액세스되므로 JS는 정상 방식으로 컬링됩니다.예를 들어 다음과 같습니다.
플레인 HTML + 앵귤러JS:
<tr ng-repeat="product in products">
<td> {{ product.name }} </td>
</tr>
MtHaml + 각도JS:
%tr(ng-repeat="product in products")
%td {{ product.name }}
MtHaml + 각도MtHaml 스타일의 Twig를 사용하는 JS:
- set twigVariable = "somevalue"
= twigVariable
%tr(ng-repeat="product in products")
%td {{ product.name }}
Django 및 AngularJS에 대한 유사한 질문에서 언급되었듯이 기본 기호 변경으로 트릭합니다(Twig 또는 Angular).JS)는 이러한 기호를 사용하는 타사 소프트웨어와의 호환성을 제공할 수 있습니다.그래서 구글에서 찾은 최고의 조언은 https://groups.google.com/d/msg/symfony2/kyebufz4M00/8VhF1KWsSAEJ입니다.
TwigBundle에서는 렉서 구분자를 변경할 경우 공유 번들에 의해 제공되는 템플릿(TwigBundle 자체에서 제공되는 예외 템플릿 포함)을 사용할 수 없기 때문에 렉서 구분자에 대한 설정은 제공되지 않습니다.
단, 모서리 템플릿 주위에 raw 태그를 사용하여 모든 곱슬곱슬한 괄호에서 벗어날 수 있습니다.http://twig.sensiolabs.org/doc/tags/raw.html -- Christophe | Stof
태그의 이름이 글자 그대로 변경되었습니다.
디렉티브는 Atribute-based 디렉티브도 할 수 .<p ng-bind="yourText"></p>
is is is is is와 <p>{{yourText}}</p>
하시면 됩니다.\{{product.name}}
핸들 바에 의해 무시되고 대신 Angular에 의해 사용되는 식을 얻습니다.
다음은 베스트 답변의 컴파일 버전과 말 그대로의 블록의 예입니다.
단일 삽입의 경우 다음을 사용합니다.
{{ '{{model}}' }}
또는 twig 변수를 사용하는 경우
{{ '{{' ~ twigVariableWitModelName ~ '}}' }}
말 그대로, 매우 우아하고 여러 각도 변수에 대해 읽을 수 있습니다.
<table ng-table>
{% verbatim %}
<tr ng-repeat="user in $data">
<td data-title="'Name'">{{user.name}}</td>
<td data-title="'Age'">{{user.age}}</td>
</tr>
{% endverbatim %}
</table>
기존 각도 구문의 템플릿 태그를 변경하는 데 관심이 없는 경우 기존 각도 템플릿을 다시 작성해야 합니다.
다음과 같이 각 태그가 있는 twig 템플릿 태그를 사용할 수 있습니다.
{% verbatim %}{{yourName}}{% endverbatim %}
다른 유사한 스레드 응답: symfony2 어플리케이션의 Angularjs에서 이를 발견했습니다.
또는 Twig에서 사용하는 문자를 변경할 수도 있습니다.이것은 Twig_Lexer에 의해 제어됩니다.
$twig = new Twig_Environment();
$lexer = new Twig_Lexer($twig, array(
'tag_comment' => array('[#', '#]'),
'tag_block' => array('[%', '%]'),
'tag_variable' => array('[[', ']]'),
'interpolation' => array('#[', ']'),
));
$twig->setLexer($lexer);
angular.module('app', [])
.config(['$interpolateProvider', function ($interpolateProvider) {
$interpolateProvider.startSymbol('[[');
$interpolateProvider.endSymbol(']]');
}]);
저는 @pabloRN을 좋아하지만, 저는 p가 결과에 행을 추가하기 때문에 p 대신 span을 사용하고 싶습니다.
다음을 사용합니다.
<span ng-bind="yourName"></span>
커서가 큰따옴표 안에 있는 aText도 사용하기 때문에 여러 번 다시 쓸 필요가 없습니다.
나뭇가지에 각진 방향을 둘러싸는 함수를 만들 수 있습니다. 따라서 가지 않고...
{{"angular"}}
당신은...
{{angular_parser("angular stuff here output curlies around it")}}
언급URL : https://stackoverflow.com/questions/13671701/angularjs-twig-conflict-with-double-curly-braces
'programing' 카테고리의 다른 글
npm 패키지 설치 시 종속성 트리 오류를 해결할 수 없습니다. (0) | 2023.03.06 |
---|---|
스프링 부트: YAML 파일에서 @Value 로드 (0) | 2023.03.06 |
Gson에서는 기본 no-args 컨스트럭터가 필수입니까? (0) | 2023.03.06 |
ng-src vs src 사용 (0) | 2023.03.01 |
응답 헤더를 angularjs로 읽는 방법 (0) | 2023.03.01 |