Handlebars可以将javascript变量设置为null吗?
Can Handlebars set a javascript variable to null?
我使用把手来定义一些JavaScript变量,使用我从API中提取的信息。这样的:
var userState = {{user.user_state.value}};
这通常工作得很好,除非user.user_state.value
是null
,在这种情况下,它被编译成这样:
var userStateNow = ;
这会使我正在编写的应用程序崩溃。我试过使用try
/catch
,但没有帮助。还有其他办法吗?
您可以注册您自己的帮助器来执行显式null
检查:
Handlebars.registerHelper('nullsafe', function(value) {
return value === null ? "null" : value;
});
然后var userState = {{nullsafe user.user_state.value}};
,但我的猜测是,这只会把问题推回一个层次。例如,如果值是字符串"foo"
怎么办?您的结果将是
var userState = foo;
不var userState = "foo";
您可以使用JSON.stringify
输出的值将始终是有效的JavaScript值:
Handlebars.registerHelper('json', function(value) {
return JSON.stringify(value);
});
然后var userState = {{json user.user_state.value}};
这将处理null
,我的字符串示例,和其他几个情况;但不是undefined
。我们可以调整它:
Handlebars.registerHelper('jsout', function(value) {
return value === undefined ? "undefined" : JSON.stringify(value);
});
然后var userState = {{jsout user.user_state.value}};
等等,直到你有适合你的用例的东西
相关文章:
- 数组在递归方法中设置为null
- 未捕获的类型错误:无法设置属性'innerHTML'如果为null,则将脚本移动到正文不会;不起作用
- jQuery Modal Popup-回发后输入类型设置为null
- 无法设置属性'innerHTML'在javascript中为null
- JQuery在设置另一个值之前将附加值设置为null
- 如果为null,则设置javascript变量的值
- 为什么设置 element.className = null 会导致 class=“null”
- 未捕获的类型错误:无法设置属性'onclick'为null.已尝试window.onload
- Highcharts无法设置属性'的值;要点':对象为null或未定义
- 什么是 ClojureScript 类似地将不存在的对象值设置为 JavaScript 中的 null
- 即使在 DOM 加载后也无法设置 null 的 .innerHTML
- Javascript:将类/对象引用设置为 NULL,内存中的子对象/类会发生什么
- IE错误:无法设置属性'的值;样式':对象为null或未定义
- 使用clearInterval方法实现的是将区间变量引用设置为null,而不是
- 可以't将属性src设置为null,即使DOM已准备就绪
- crm 2011 javascript将日期字段设置为null
- 在Javascript中,为什么在元素上设置outerHTML会将其parentNode设置为'null'
- 未捕获类型错误:Cannon设置属性'valueAsDate'为null
- 在ember.js记录上使用toJSON,将其中一个属性设置为null
- 未捕获的类型错误:无法设置属性'innerHTML'null的:javascript