2016-09-19 2 views
0

У меня есть шаблон нефрита, который содержит список, и он вызывает метод, называемый 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() заканчивается аргументами «категория», «заданиями», а не «категориями», «заданиями», – Mark

ответ

1

Вы можете использовать $ filter для перевода на javascript непосредственно из вашего идентификатора строки перевода. Просто вызовите фильтр «translate» и передайте свой параметр строки перевода. Например:

var translate = this.$filter("translate"); 
var jobsTranslated= translate('jobs'); 
Смежные вопросы