给我带来麻烦的代码是在 UI 控制器中:
addListItem: function(obj, type) {
var html, newHtml, element;
// Create HTML string with placeholder text
if (type === 'inc') {
element = DOMStrings.incomeContainer;
html = '<div class="item clearfix" id="inc-%id%"> <div class="item__description">%description%</div><div class="right clearfix"><div class="item__value">%value%</div><div class="item__delete"><button class="item__delete--btn"><i class="ion-ios-close-outline"></i></button></div></div></div>';
} else if (type === 'exp') {
element = DOMStrings.expensesContainer;
html = '<div class="item clearfix" id="exp-%id%"><div class="item__description">%description%</div><div class="right clearfix"><div class="item__value">%value%</div><div class="item__percentage">21%</div><div class="item__delete"><button class="item__delete--btn"><i class="ion-ios-close-outline"></i></button></div></div></div>';
}
// Replace the placeholder text with some actual data
newHtml = html.replace('%id%', obj.id);
newHtml = newHtml.replace('%description%', obj.description);
newHtml = newHtml.replace('%value%', formatNumber(obj.value));
// Insert the HTML into the DOM
document.querySelector(element).insertAdjacentHTML('beforeend', newHtml);
},
getDomStrings: function() {
return DOMStrings
}
它一直说 formatNumber 未定义,但老实说我找不到导致错误的原因。
ReferenceError:formatNumber 未定义
该错误意味着您正在引用未定义的内容。在这种情况下,您将引用第 98 行上的
formatNumber
,该行未声明。
您必须创建该函数,或者删除正在使用该函数的代码。
这一行:
newHtml = newHtml.replace('%value%', formatNumber(obj.value));