매개 변수 값을 정의하지 않으면 사용자 지정 핸들 막대 도우미를 만들었고 다음 오류가 발생합니다.핸들 막대 TypeError : 정의되지 않은 'fn'속성을 읽을 수 없습니다.
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;
}
I과 같은 세 가지 매개 변수를 정의 할 경우 작동 :
{{#bg-img 'assets/img/hero-header.jpg' '000000' 'my-class'}}
<container>
<row>
<columns>
</columns>
</row>
</container>
{{/bg-img}}
을 내가 매개 변수 콘솔을 정의하지 않는 경우는 "핸들 바 형식 오류를 : 정의의 'FN을'속성을 읽을 수 없습니다"보여줍니다.
{{#bg-img }}
<container>
<row>
<columns>
</columns>
</row>
</container>
{{/bg-img}}
내가 뭘 잘못하고 있는지에 대한 아이디어가 있으십니까?
업데이트 : 아래 제안 된 "null"로 확인했지만 여전히 같은 오류입니다.
if (typeof src === 'undefined' || src === null) src = '';
if (typeof color === 'undefined' || color === null) color = '';
if (typeof classatr === 'undefined' || classatr === null) classatr = '';
"null"을 넣을 필요가없는 방법이 있습니까 –
거기 있다고 생각하지 않습니다. 왜냐하면'null'을 사용함으로써 매개 변수가 존재한다는 것을 (정의 된 것을 의미하는) 함수에 알려주고 있기 때문에 어떤 값도 포함하지 않기 때문입니다. 당신은 다른 무엇으로도 할 수 없습니다 (즉, '정의되지 않음'). 그래서'null'은 실제로 모든 매개 변수를 제공하는 승/O를 해결할 수있는 가장 좋은 방법입니다. – m87
트릭을 수행하는 {{# bg-img '' '' ''}}. 도와 주셔서 감사합니다. 답변으로 표시되었습니다. –