我正在使用jsPdf。当一个字段留空时,“未定义”将打印在pdf上。我想用空字符串替换它。我正在尝试使用if语句,但我没有得到它。
doc.text(30, 190, "Budget : $");
if ($scope.currentItem.JobOriginalBudget == "undefined") {
doc.text(50, 190, " ");
}
else {
var y = '' + $scope.currentItem.JobOriginalBudget;
doc.text(50, 190, y);
};
答案 0 :(得分:11)
undefined
is a primitive value。您不是要与标识符undefined
进行比较,而是与9个字符字符串" undefined
"进行比较。
只需删除引号:
if ($scope.currentItem.JobOriginalBudget == undefined)
或与typeof
结果进行比较,其中 是一个字符串:
if (typeof $scope.currentItem.JobOriginalBudget == "undefined")
答案 1 :(得分:9)
根据this answer我相信你想要的是
doc.text(50, 190, $scope.currentItem.JobOriginalBudget || " ")
答案 2 :(得分:2)
只需删除“=='undefined'”
即可if (!$scope.currentItem.JobOriginalBudget) {
doc.text(50, 190, " ");
}
答案 3 :(得分:1)
如果item是Object用途,则此功能:
replaceUndefinied(item) {
var str = JSON.stringify(item, function (key, value) {return (value === undefined) ? "" : value});
return JSON.parse(str);
}
答案 4 :(得分:0)
var ab = {
firstName : undefined,
lastName : undefined
}
let newJSON = JSON.stringify(ab, function (key, value) {return (value === undefined) ? "" : value});
console.log(JSON.parse(newJSON))
<p>
<b>Before:</b>
let ab = {
firstName : undefined,
lastName : "undefined"
}
<br/><br/>
<b>After:</b>
View Console
</p>