因此,多亏了 SO,我可以将对象从节点传递到客户端,但是将其放入淘汰视图模型有点尴尬。这些是我到目前为止的步骤(我已经包含了相关行的链接,因为它们出现在我的 github 项目中。认为上下文可能会有所帮助。):
申请
JSON.stringify
并传递到玉文件recipeJSON: JSON.stringify(recipe);
将其包装在头脚本中的函数中,该函数仅解析 JSON 并返回结果
script function getRecipeObject() { var r = '!{recipeJSON}'; return JSON.parse(r); }
调用此函数并将结果传递给视图模型构造函数
self.recipe = ko.observable(new Recipe(getRecipeObject()));
这可行,但有更好的方法吗?
问题澄清(编辑):我觉得第 2 步不应该是必要的。有没有办法直接将 JSON 从节点传递到 Recipe() 构造函数,而不getRecipeObject()
充当中间步骤?我试着recipeJSON
像这样直接传入
self.recipe = ko.observable(JSON.parse('!{recipeJSON}'));
我认为这不起作用,因为它不是玉模板并且无法访问变量。