2016-03-05 39 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