2016-09-19 5 views
0

私はリストを含むjadeテンプレートを持っていて、アイテムがクリックされるとchange()というメソッドを呼び出します。以下の例では、change()メソッドに「カテゴリ」と「ジョブ」のパラメータを渡します(Angular Translateを使用し、「ジョブ」を「ジョブ」にマップした変換ファイルがあります)。しかし、ヒスイコンパイラはsayinfことと、エラーがスローされますようにしない:文字列を翻訳してからng-clickに渡す

Syntax Error: Unexpected token 
translate='jobs' 

私のコードは次のとおりです。

ul.dropdown-menu 
    li(ng-click='ctrl.change("category", translate='jobs')') 
     a(translate='jobs') 



change(dimensionKey, dimensionName) { 

    console.log('in the change and arguments are ', arguments); 

} 

どのように私はng-clickに渡し、その後文字列を変換することができますか?

+1

問題が単一引用符である可能性があります。あなたのテンプレートでは、 'ng-click'を' = '記号の後ろに一重引用符で始まります。次に、単一の引用符で変換式を開始し、Jade文を効果的にマングリングします。 'translate =" jobs "' –

+0

@JoelCDoyle翻訳は実際にはこのように実行されません。change()ハンドラは、 "category"、 "Jobs"ではなく "category"、 "jobs" – Mark

答えて

1

$ filterを使用すると、JavaScript文字列を翻訳文字列IDから直接変換できます。 「翻訳」フィルタを呼び出し、翻訳文字列パラメータを渡すだけです。例:

var translate = this.$filter("translate"); 
var jobsTranslated= translate('jobs'); 
関連する問題