2 回答
TA贡献1887条经验 获得超5个赞
使用模板引擎传递的数据是直接对象,例如{{this.recipe.ingredients}},因此当此对象“ this.recipe.ingredients”转换为字符串时,它将转换为“ [[Object object]]”是Object#toString()方法提供的默认字符串响应。您需要做的是首先将您的对象转换为字符串,然后将其分配给html元素的属性值。为了进行转换,您可以使用“ JSON.stringify(this.recipe.ingredients)”,它将整个对象转换为JSON格式的字符串。我不知道“ Handlebars模板引擎”,但这应该可以工作:{{JSON.stringify(this.recipe.ingredients)}}。是的,您忘记了放置“ =”<input type="hidden" name="recIngredients" value "{{this.recipe.ingredients}}"/>
来将值属性与其实际值(即“ {{this.recipe。
TA贡献1804条经验 获得超2个赞
实际上说您的代码按预期工作。在将JAVASCRIPT对象(this.recipe.ingredients)放在隐藏字段中时,我们需要将该JAVASCRIPT对象转换为字符串值,以便将其作为FORM数据提交。
要进行转换,您需要创建并注册如下所示的把手助手
Handlebars.registerHelper('json', function(context) {
return JSON.stringify(context);
});
另外,您需要在如下所示的适当位置使用该帮助程序。
<input type="hidden" name="recIngredients" value="{{json this.recipe.ingredients}}"/>
顺便说一句,如果将隐藏字段设置为文本字段,则可以轻松找到问题(我希望)。
添加回答
举报