javascript - target.status 值未定义
问题描述
var getOptArray = function (opt) {
var len = opt.length;
var res = [];
for (var i = 0; i < len; i++) {
res.push({text: (opt[i].text), value: opt[i].value, icon: opt[i].icon, color: opt[i].color});
}
return res;
}
var BLOG_CATEGORY_STATUS = {
prop: {text: "status", defval: false, class: "", size: "text-sm", margin: "m-r-xs", editable: [1, 2], tooltip: true},
publish: {text: "publishing", value: 1, icon: "fa fa-play", color: "green", question: "Publish"},
pause: {text: "paused", value: 2, icon: "fa fa-pause", color: "warning", question: "Pause"},
deleted: {text: "deleted", value: 3, icon: "fa fa-trash", color: "danger", question: "Delete"},
optArr: function () {
return getOptArray([this.publish, this.pause, this.deleted]);
},
/**
* opt example -> {status: foo, categoryId: fooValue, callback: fooFunction}
* @param {type} opt
*/
buildButton: function (opt) {
opt = opt || {};
var optArray = this.optArr();
var targetStatus = optArray[(opt.status) - 1];
console.log(targetStatus);
console.log(targetStatus.color); //prints "warning"
console.log(targetStatus.question); //prints "undefined"
var but = {};
return but;
}
};
$(function () {
BLOG_CATEGORY_STATUS.buildButton({categoryId: 1
, status: 2
, callback: function () {
console.log("test");
}})
});
我编辑代码以在 jsfiddle 中添加为问题。它已准备好在 jsfiddle 中运行
在 buildButton 函数中,targetStatus.color 是警告,对于同一个对象,targetStatus.question 是未定义的。看不到我错过了什么。
解决方案
您可能缺少question
以下返回值中的数据getOptArray
:
res.push({
text: opt[i].text,
value: opt[i].value,
icon: opt[i].icon,
color: opt[i].color,
question: opt[i].question // <- here
});
其中,当您使用它时,您可能应该将这一行重写为:
res.push(opt[i]);
推荐阅读
- javascript - Highcharts Timeline在多个系列中的点宽度不一致
- ios - 如何使苹果 iap 服务器通知端点安全
- javascript - 如何在 nodejs 中加载 JSON?
- sql - 在 sql 中查找唯一的路由
- android - Swift 和 Kotlin 的密钥派生函数库?
- python - 将标题名称分配给具有不同列数的 panda 数据表
- javascript - 登录后页面未使用 window.href 加载,但在我登录前转到 url 时加载
- flutter - 变量可以用作 dart 语言中命名参数的键吗?
- typescript - 在 TypeScript 中,如何将联合的每个值映射到单独的类型?
- c++ - 在 Microsoft Visual Studio 中为 Linux 机器编译 C++ 代码(使用 GDAL)