Как проверить, задана ли выходная привязка?

Как проверить, задана ли выходная привязка?

Пример кода:

angular.module('tester', []);
angular.module('tester').component('test', {
    template: '<h3></h3>',
    bindings: {
      callback : '&'
    },
    controller: function() {
       // How to check if callback binding is given?
       // typeof this.callback === 'function' returns true
       // angular.isFunction(this.callback) also returns true 
    }
}); 

person tiktak    schedule 26.10.2016    source источник
comment
следующий пост может ответить на этот вопрос: stackoverflow.com/a/38914917/2106610   -  person groetzi    schedule 21.07.2021


Ответы (2)


Если вы хотите проверить, задана ли привязка, просто выполните:

   if(this.callback)
      return true
    else 
      return false

Значение this.callback будет доступно в компоненте, если привязка есть, в противном случае его не будет.

person Beslinda N.    schedule 26.10.2016
comment
Не работает, потому что привязка всегда является функцией. - person tiktak; 26.10.2016

Если вы измените свою привязку на необязательную, то она будет неопределенной, если она не указана, и вы можете проверить, была ли она предоставлена, используя методы, которые вы уже упоминали.

bindings: {
  callback : '&?'
},
person Derenge    schedule 09.03.2017