簡體   English   中英

javascript / dojo方法范圍

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM