Я действительно не уверен, чего вы пытаетесь достичь, но я дам ему шанс. Если вы пытаетесь сделать некоторые логики на всех <my-element>
тегов, используйте methods
объект, например:
xtag.register('my-element', {
methods: {
logic: function (a) {
return a * 2;
}
}
});
Если вы хотите, чтобы иметь возможность назначить logic
каждому экземпляру <my-element>
индивидуально, то вы могли бы использовать стандартный (неатрибутный) аксессуар и делает это неявно.
xtag.register('my-element', {
accessors: {
logic: {}
}
});
HTML
<my-element id="test"></my-element>
Набор логики для одного экземпляра <my-element>
var el = document.querySelector('my-element#test');
el.logic = function (a) {
return a * 2;
};
Если вы хотите использовать атрибут, чтобы установить значение logic
для глобальной функции, вы могли бы сделать это:
Пример глобальной функции
function myFunction(a) {
return a * 2;
}
Компонент
xtag.register('my-element', {
accessors: {
logic: {
attribute: {},
get: function() {
return this._logic;
},
set: function (v) {
this._logic = window[v] || null;
}
}
}
});
Использование (HTML)
<my-element logic="myFunction"></my-element>
Использование (JS)
var el = document.querySelector('my-element');
el.logic(2); // 4
Спасибо. Последний - именно то, что я искал. – Marchinka