Свойство функции не является функцией в Polymer - PullRequest
0 голосов
/ 10 мая 2018

Я использую платформу Polymer для своего проекта, в котором я объявляю функцию обратного вызова в свойствах и пытаюсь вызвать ее из другой функции.Но при доступе к нему я получаю сообщение об ошибке:

Uncaught TypeError: this.callback не является функцией

Пожалуйста, посмотрите на это.

Polymer({
  is: "parent-dom",
  properties: {
    people: {
      type: String,
      value: "df"
    },
    item: {
      type: String,
      value: "asdf",
      notify: true
    },
    callback: {
      type: Object,
      value: function(index) {
        console.log("Inside  callback function");
      }
    },

  },
  showTargetColorDialog: function(e) {
    this.callback("sadf");
  }
});

1 Ответ

0 голосов
/ 10 мая 2018

Не могли бы вы предоставить более подробную информацию о том, чего бы вы хотели достичь, поскольку укажите Свойства полимера в качестве функций Это не очень распространенный случай?

Таким образом, вы можете объявить открытые методы для вашего элемента, как вы сделали с showTargetColorDialog, и они будут доступны для вызова как:

document.querySelector('parent-dom').showTargetColorDialog();

Но опять же, это не очень "Полимерный путь" к этому.

Чтобы ответить на ваш оригинальный вопрос , если вам действительно нужно установить обратный вызов в качестве свойства Polymer (я до сих пор не уверен, почему), но вы могли бы:

callback: {
  type: Object,
  value: function() {
    return function(index) {
        console.log("Inside callback function ", index);
    };
  }
},

И тогда вы сможете звонить this.callback('something');

...