Ich habe einen benutzerdefinierten Lenkerhelfer erstellt und erhalte den folgenden Fehler, wenn ich keinen Wert für Parameter definiere.Lenker TypeError: Eigenschaft 'fn' von undefined kann nicht gelesen werden
module.exports = function(src, color, classatr, options) {
if (typeof src === 'undefined') src = '';
if (typeof color === 'undefined') color = '';
if (typeof classatr === 'undefined') classatr = '';
var bg = '<table class="'+ classatr +'" cellpadding="0" cellspacing="0" border="0" width="100%">\
<tr>\
<td background="'+ src +'" bgcolor="'+ color +'" valign="top">\
<!--[if gte mso 9]>\
<v:rect xmlns:v="urn:schemas-microsoft-com:vml" fill="true" stroke="false" style="mso-width-percent:1000;">\
<v:fill type="tile" src="'+ src +'" color="#'+ color +'" />\
<v:textbox style="mso-fit-shape-to-text:true" inset="0,0,0,0">\
<![endif]-->\
<div>'
+ options.fn(this) +
'</div>\
<!--[if gte mso 9]>\
</v:textbox>\
</v:rect>\
<![endif]-->\
</td>\
</tr>\
</table>';
return bg;
}
Dies funktioniert, wenn ich alle drei Parameter als solche definieren:
{{#bg-img 'assets/img/hero-header.jpg' '000000' 'my-class'}}
<container>
<row>
<columns>
</columns>
</row>
</container>
{{/bg-img}}
Wenn ich zeigt „Lenker Typeerror: Kann Eigenschaft‚fn‘undefinierter nicht lesen“ keinen Parameter Konsole definieren.
{{#bg-img }}
<container>
<row>
<columns>
</columns>
</row>
</container>
{{/bg-img}}
Irgendwelche Ideen, was ich hier falsch mache?
Update: Auch überprüft mit "Null" wie unten vorgeschlagen, aber immer noch gleichen Fehler.
if (typeof src === 'undefined' || src === null) src = '';
if (typeof color === 'undefined' || color === null) color = '';
if (typeof classatr === 'undefined' || classatr === null) classatr = '';
Gibt es einen Weg um nicht "Null" zu setzen –
Ich glaube nicht, dass es gibt. Denn mit 'null' sagen Sie der Funktion, dass der Parameter existiert (definiert), auch wenn er keinen Wert enthält. was man mit nichts anderem machen kann (zB 'undefiniert'). so 'null' ist der beste Weg, um herumzukommen, ohne irgendeinen Param zu liefern. – m87
{{# bg-img '' '' ''}} das macht den Trick. Danke für die Hilfe. Als Antwort markiert. –