0
假設我正在使用模塊模式,例如RequireJS,並且我將模塊A發送到模塊B中。如何從模板調用「依賴注入」JavaScript函數?
現在在我的模塊中,我想使用模板引擎生成HTML,但爲了解決問題,可以說我手動創建HTML字符串。在那個HTML字符串中,我想創建一個按鈕來調用模塊「a」提供的函數。
但我顯然不能只是做:
define([ "a.js" ], function(a) {
var html = "<button onclick='a.myfunction();'>Click me!</button>";
});
我該怎麼辦呢?從JavaScript跨越到「HTML-String」,當我無法調用全局函數時,因爲它的所有模塊爲基礎?
define([ "a.js" ], function(a) {
var html = "<button onclick='*** HERE I WANT TO CALL A FUNCTION PROVIDED WITH A***'>Click me!</button>";
});
我知道我可以通過JavaScript手動添加事件 - 但不打破使用模板語言+引擎的整個想法? – corgrath 2013-02-18 21:43:52
@corgrath這個建議比內聯事件處理程序更好。 – bfavaretto 2013-02-18 21:46:52
@corgrath我在這裏沒有看到任何問題。在任何情況下,你的模塊負責生成一個HTML,那麼爲什麼不事後處理事件處理程序呢?如果你仍然想使用按鈕的onclick事件,我相信你可以在你的模板中做這樣的事情:''但我不會這樣做 - 它醜陋無效...... – nexuzzz 2013-02-19 04:55:31