2014-09-16 7 views
9

Używam jsPdf. Gdy pole zostanie pozostawione puste, "nieokreślone" zostanie wydrukowane na pdf. Chciałbym zastąpić to pustym ciągiem. Próbuję użyć instrukcji if, ale nie otrzymuję tego.Jak zamienić niezdefiniowany na pusty ciąg

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); 
    }; 
+2

Po prostu wykonaj 'var value = $ scope.currentItem.JobOriginalBudget || ""; doc.text (50, 190, value + '') 'Sprawdź wartość fałszu, która może być" niezdefiniowana ",", null, NaN, false, 0 "itd. Lub użyj" angle.isUndefined ($ scope.currentItem.JobOriginalBudget) 'dla specyficznej kontroli, lub nawet' angular.isDefined' dla odwrotności poprzedniego – PSL

+0

lub rozszerzenia na to, co pokazuje @PSL, utwórz prostą funkcję pomocniczą, ponieważ plik PDF prawdopodobnie ma wiele z nich do zrobienia i może napisać 'getVal (var) 'dużo łatwiejsze niż wiele porównań – charlietfl

+0

' var y = '' + ($ scope.currentItem.JobOriginalBudget || ''); ' –

Odpowiedz

9

undefined is a primitive value. Zamiast porównywania z identyfikatorem undefined, porównujesz z 9-znakowym ciągiem "undefined".

Wystarczy usunąć cytaty:

if ($scope.currentItem.JobOriginalBudget == undefined) 

Albo porównać z wynikiem typeof, który jest ciąg:

if (typeof $scope.currentItem.JobOriginalBudget == "undefined") 
2

prostu usunąć "== 'niezdefiniowany'"

if (!$scope.currentItem.JobOriginalBudget) { 
    doc.text(50, 190, " "); 
} 
+0

mój błąd tak, naprawiony jako edycja – theDarse

7

Zgodnie z this answer I uwierz, co chcesz, to

doc.text(50, 190, $scope.currentItem.JobOriginalBudget || " ")