2016-03-05 1 views
0

Я пытаюсь использовать аксессоры x-tag, но я не нахожу хорошую документацию о них. Я хотел бы передать функцию через аксессуар и написать что-то вроде этого:Функция пропуска через x-tag-аксессоры

<my-element logic="myFunction()"></my-element> 

И я хочу сохранить эту функцию и использовать ее позже. Есть ли способ сделать это?

ответ

0

Я действительно не уверен, чего вы пытаетесь достичь, но я дам ему шанс. Если вы пытаетесь сделать некоторые логики на всех <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 
+0

Спасибо. Последний - именно то, что я искал. – Marchinka

Смежные вопросы