Я использую старый AngularJS 1.5.11 в большом проекте и пытаюсь очистить свои шаблоны с помощью директив.
У меня есть директива кнопки редактирования, в которой я хотел бы пройтиUI-SREF, но когда я получаю, я получаю ошибку
Error: [$parse:syntax] Syntax Error: Token '}' not a primary expression at column 6 of the expression [{id: }] starting at [}].
Вот моя директива
editButton = ->
return {
restrict: 'EA',
scope: {
sref: "@"
},
template: '
sref = {{sref}}
<button id="edit-btn"
class="mds__button -blue"
ui-sref={{sref}}>
<i class="fa fa-edit"></i> Edit
</button>
'
}
angular
.module('myApp')
.directive('editButton', editButton)
И вот как я называю это
<edit-button sref="job_edit({id: {{job.id}}})" />
В моем шаблоне я отображаю sref, и он правильно распечатан, но кнопке не нравится ui-sref.
Обновление
Я заработал, но было бы неплохо реорганизовать его, поэтому я передаю атрибут job_edit ({id: job.id}), и он работает.
Директива;
editButton = ->
return {
restrict: 'EA',
scope: {
model: "@"
item: "="
},
template: '
<button id="edit-btn"
class="mds__button -blue"
ui-sref="{{model}}_edit({id: item.id})">
<i class="fa fa-edit"></i> Edit
</button>
'
}
angular
.module('myApp')
.directive('editButton', editButton)
Вызов его в моих шаблонах;
<edit-button model="job" item="job" />