2017-10-26 17 views
0

複数の子ディレクティブにng-repeatを使用しています。子ディレクティブの最初のインスタンスでは、属性 'doAutofocus'をtrueに設定します。下のコードを試してみると、解析エラーが出ます。私$index == 0をNGがリピートすると

Error: $parse:syntax Syntax Error

マイディレクティブ 'tradePanel' は、{trade: '=', doAutofocus: '='}

の範囲を持って、私はdoAutofocusは、そうでない場合はfalse、真になりたいです。

{{ }}を使用するサーバー側のブレードテンプレートを使用します。 angularjsテンプレートの場合

、私が使用しています:

$interpolateProvider.startSymbol('{%'); 
$interpolateProvider.endSymbol('%}'); 

をどのように私は自分のdoAutofocusが私の最初のインスタンスに対して正しく設定属性が入手できますか?

<div class="row"> 
    <div class="col-xs-12 col-sm-12 col-sm-6" ng-repeat="trade in deal.trades"> 
    <trade-panel trade="deal.trades[$index]" ng-attr-do-autofocus="{% ($index === 0) ? true : false %}"></trade-panel> 
    </div> 
</div> 
+0

:我々はng-repeatブロック内にあるので、あなただけの提供$first変数を使用できますか?また、$ interpolateProviderをどこで設定していますか?これは設定ブロックで行われていますか? –

答えて

1

あなたdoAutofocusディレクティブのscope属性のバインディング双方向を使用しているので、あなたはここで補間を使用することはできません。ディレクティブに渡す式を書くだけです。これは親スコープの既存の値でなければなりません。あなたがエラーの詳細を表示することができます

<div class="col-xs-12 col-sm-12 col-sm-6" ng-repeat="trade in deal.trades"> 
    <trade-panel trade="trade" do-autofocus="$first"></trade-panel> 
</div> 
関連する問題