0

シンプルなショッピング カートを実装する Dojo モジュールを作成しました。ページ上のカートの dom ノードを生成して表示する load() メソッドがあります。これには、カート内の各アイテムの「カートから削除」ボタンにクリック イベントを割り当てるクエリが含まれます。このクリック イベントで、モジュールのルート レベルでも 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) {
                                //....
            },

ここで何ができますか?

4

1 に答える 1