シンプルなショッピング カートを実装する 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) {
//....
},
ここで何ができますか?