0
간단한 장바구니를 구현하는 도조 모듈을 만들었습니다. 페이지의 장바구니에 대한 dom 노드를 생성하고 표시하는 load() 메서드가 있습니다. 여기에는 카트의 각 항목에 대한 '카트에서 제거'버튼에 클릭 이벤트를 할당하는 쿼리가 포함됩니다. 이 클릭 이벤트가 모듈의 루트 수준에서도 remove() 메서드를 호출하지만 클릭 이벤트를 할당하는 데 필요한 모든 콜백을 전달한 후에 제거 범위에 액세스하는 방법을 알 수 없습니다.() 메소드를 다시 호출하십시오. 다음은 코드 스 니펫입니다.javascript/dojo method scope
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) {
//....
},
여기서 어떻게 할 수 있습니까?