[英]javascript/dojo method scope
我創建了一個dojo模塊,該模塊實現了一個簡單的購物車。 我有一個load()方法,可在頁面上為購物車生成dom節點並顯示它們。 這包括一個查詢,該查詢將購物車中每個商品的點擊事件分配給“從購物車中刪除”按鈕。 我希望此click事件在模塊的根級別也調用remove()方法,但是在傳遞了分配click事件所需的所有回調之后,我不知道如何訪問remove的范圍()方法再次。 這是一個代碼片段:
define([ "dojo/dom", "dojo/json", "dojo/cookie", "dojo/_base/array", "dojo/query", "dojo/on", "dojo/NodeList-dom" ],
function(dom, json, cookie, array, query, on) {
return {
load : function(config) {
var cart = this.get(config);
if (cart != null) {
var cartDiv = dom.byId(config.cart.domWrapper);
// console.log("Shopping Cart: " + cart);
cartDiv.innerHTML = "<p>Shopping Cart</p>";
cartDiv.innerHTML += this.getHTML(cart);
}
query(".remove_item").forEach(function(node, i) {
on(query(".remove_item")[i], "click", function(event) {
console.log("Removing item " + i + " from cart...");
remove(config, i); //method does not exist at this scope
});
});
},
remove : function(config, itemId) {
//....
},
我在這里可以做什么?
您可以使用“保存”課程
load : function(config) {
var self = this;
//....
然后使用以下命令調用“刪除”
//....
on(query(".remove_item")[i], "click", function(event) {
console.log("Removing item " + i + " from cart...");
self.remove(config, i);
//....
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.