Я пытаюсь проверить привязки моих компонентов.
Как вы знаете, для привязки функции вы должны использовать символ '&'.
<pipeline-list-item
item="item"
is-selected="item === $ctrl.selectedItem"
on-action="">
</pipeline-list-item>
.component('pipelineListItem', {
restrict: 'E',
bindings: {
onAction: '&'
},
template: require('./pipeline-list-item.html'),
controller($scope, RESULTS_TABS, SESSION_ACTIONS, SESSION_STATUSES, ACTIONS, Logger) {
var that = this;
that.actionClicked = function ($event, action) {
$event.stopPropagation();
$event.preventDefault();
if (typeof that.onAction === 'function') {
console.log(that.onAction);
that.onAction({item: that.item, action});
}
else {
Logger.error({
method_name: 'pipelineListItem.actionClicked.',
message: 'onAction function was not given to component.'
});
}
};
}
Поскольку '&' char AngularJS оборачивает функцию другой функцией, что заставляет typeof === 'function' возвращать true.
Функция, которую я получил.
Спасибо, Итай.