ご存知のように、角と小枝の両方に共通の制御構造があります-二重中括弧。Angularのデフォルト値を変更するにはどうすればよいですか?
Twigでそれができることは知っていますが、できないのはJSだけです。
verbatim
タグを使用することです。例:{% verbatim %}{{ angular_var }}{% endverbatim %}
AngularJSの口ひげを保存するには:twig.sensiolabs.org/doc/tags/verbatim.html
ご存知のように、角と小枝の両方に共通の制御構造があります-二重中括弧。Angularのデフォルト値を変更するにはどうすればよいですか?
Twigでそれができることは知っていますが、できないのはJSだけです。
verbatim
タグを使用することです。例:{% verbatim %}{{ angular_var }}{% endverbatim %}
AngularJSの口ひげを保存するには:twig.sensiolabs.org/doc/tags/verbatim.html
回答:
interpolateProvider
サービスを使用して、開始および終了の補間タグを変更できます。このための便利な場所の1つは、モジュールの初期化時です。
angular.module('myApp', []).config(function($interpolateProvider){
$interpolateProvider.startSymbol('{[{').endSymbol('}]}');
});
https://docs.angularjs.org/api/ng/provider/$interpolateProvider
[[myObject[myArray[index]]
{[{}]}
するのは少し変ですが、私はDjango を使用しています。答えを更新しました。
この質問は答えられているように見えますが、言及されていないよりエレガントな解決策は、次のように、中括弧を小枝中括弧の間の引用符で囲むだけです。
{{ '{{myModelName}}' }}
コンテンツに変数を使用している場合は、代わりに次のようにします。
{{ '{{' ~ yourvariable ~ '}}' }}
二重引用符ではなく、一重引用符を使用する必要があります。二重引用符はTwigによる文字列補間を有効にするため、特に式を使用している場合は、内容に注意する必要があります。
それでも中かっこをすべて表示したくない場合は、簡単なマクロを作成してプロセスを自動化することもできます。
{% macro curly(contents) %}
{{ '{{' ~ contents ~ '}}' }}
{% endmacro %}
それをファイルとして保存し、テンプレートにインポートします。ng
名前は短くて甘いので使っています。
{% import "forms.html" as ng %}
または、テンプレートの上部にマクロを配置して、_selfとしてインポートすることもできます(ここを参照)。
{% import _self as ng %}
次に、次のように使用します。
{{ ng.curly('myModelName') }}
これは出力します:
{{myModelName}}
...そしてTwigと一緒にMtHamlを使用するユーザーのフォローアップ。MtHamlは、通常の方法でAngularJSカーリーの使用を可能にします。これは、Twigコードには{{}}の代わりに-および=を介してアクセスするためです。例えば:
プレーンHTML + AngularJS:
<tr ng-repeat="product in products">
<td> {{ product.name }} </td>
</tr>
MtHaml + AngularJS:
%tr(ng-repeat="product in products")
%td {{ product.name }}
MtHaml + AngularJSとMtHamlスタイルの小枝:
- set twigVariable = "somevalue"
= twigVariable
%tr(ng-repeat="product in products")
%td {{ product.name }}
{{'{{contact.name}\}'}}
印刷され{{contact.name}}
、私が望んでいたとして
DjangoとAngularJSに関する同様の質問で述べたように、デフォルトのシンボル(TwigまたはAngularJS)を変更するトリックは、これらのシンボルを使用するサードパーティソフトウェアとの非互換性を提供する可能性があります。だから私がグーグルで見つけた最高のアドバイス:https://groups.google.com/d/msg/symfony2/kyebufz4M00/8VhF1KWsSAEJ
TwigBundleは、レクサーデリミタの設定を提供しません。これを変更すると、共有バンドルによって提供されるテンプレート(TwigBundle自体によって提供される例外テンプレートを含む)の使用が禁止されるためです。
ただし、角型テンプレートの周りに未加工タグを使用して、すべての中括弧をエスケープする手間を省くことができます。http: //twig.sensiolabs.org/doc/tags/raw.html-Christophe | ストフ
タグは逐語的に名前が変更されました
あなたは、属性ベースのディレクティブは、あまりにも使用することができます<p ng-bind="yourText"></p>
と同じです<p>{{yourText}}</p>
<li id={{item.id}}></li>
?
<p data-ng-bind="yourText"></p>
HTMLを有効にするために使用するのがさらに良いでしょう
これはベストアンサーのコンパイルバージョンであり、逐語的ブロックの例です。
単一挿入の場合は、次を使用します。
{{ '{{model}}' }}
または、twig変数を使用する場合
{{ '{{' ~ twigVariableWitModelName ~ '}}' }}
Verbatimは、非常にエレガントで、いくつかの角度変数に対して読み取り可能です。
<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>
既存のAngular構文のテンプレートタグを変更する必要がない場合は、既存のAngularテンプレートを混乱させるような書き換えが必要になります。
次のように、角タグを付けた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を使用しているため、全体を何度も書き換える必要はありません。
<span>
ますが、他のコンテンツがある場合のインラインテキストに使用されます。例:<h1>Welcome <span ng-bind="yourName"></span></h1>
twigで関数を作成して、角度ディレクティブを囲むことができます。
{{"angular"}}
あなたが行く ...
{{angular_parser("angular stuff here output curlies around it")}}