gpt4 book ai didi

javascript - 为什么我的主干 View 渲染将 "undefined"放在顶部?

转载 作者:行者123 更新时间:2023-11-28 21:14:18 26 4
gpt4 key购买 nike

我认为以下 View 中的大部分渲染函数都是无关紧要的,但为了完整性我将其保留。我正在逐步完成工作流程步骤列表,并注意到根据事物的不同状态切换 li 的类。

var WorkStepView = Backbone.View.extend({
className: "workflowStep",

render: function() {
var output;
var arrowPlaced = false;
var self = this;
i = 0;
_.each(this.collection.models, function(s) {
var post = "";
var classname = '';
if (s.attributes["complete"] != 1) {
if (! arrowPlaced) {
classname = "current";
if (s.attributes["adminCompletable"] == 1 ) {
post = ' - <input onClick="completeStep(' + i + ');" type="button" value="Completed" />';
}
arrowPlaced = true;
}
else {
classname = "future";
}
}
else {
classname = "past";
}
output += '<li class="' + classname + '">' + s.attributes["description"] + post + '</li>';
i++;
});
this.el.innerHTML = output;
return this;
},
});

当用户从页面其他位置的列表中选择 Assets 时,它会显示包括这些内容在内的一堆数据。 Assets “有”一个工作流程,其中“有”许多步骤。步骤数据存储在window.Steps中,然后调用:

function populateSteps() {
window.workStepLists = new WorkStepView({
collection: window.Steps,
el: $('#workflowSteps')[0],
});
workStepLists.render();
}

但后来我明白了:
enter image description here

列表顶部有一个无关的“未定义”。在获取和渲染此模型之前它不存在。我根本不知道这是怎么回事。

帮忙?

最佳答案

您没有将output初始化为任何内容。因此,output += "foo" 变为“undefinedfoo”。

只需使用空字符串初始化输出变量:

var output = '';

关于javascript - 为什么我的主干 View 渲染将 "undefined"放在顶部?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7996784/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com