【发布时间】:2013-07-26 14:17:36
【问题描述】:
因此,多亏了 SO,我可以将对象从节点传递到客户端,但是将其放入淘汰视图模型有点尴尬。这些是我到目前为止的步骤(我已经包含了相关行的链接,因为它们出现在我的 github 项目中。认为上下文可能会有所帮助。):
-
申请
JSON.stringify并传递到玉文件recipeJSON: JSON.stringify(recipe); -
将其包装在一个 function in a header script 中,它只解析 JSON 并返回结果
script function getRecipeObject() { var r = '!{recipeJSON}'; return JSON.parse(r); } -
调用此函数并将结果传递给view model constructor
self.recipe = ko.observable(new Recipe(getRecipeObject()));
这可行,但有更好的方法吗?
问题澄清(编辑):我觉得第 2 步没有必要。有没有办法直接将 JSON 从节点传递到 Recipe() 构造函数,而不用 getRecipeObject() 作为中间步骤?我尝试像这样直接传递recipeJSON
self.recipe = ko.observable(JSON.parse('!{recipeJSON}'));
我认为这不起作用,因为它不是翡翠模板并且无法访问变量。
【问题讨论】:
-
可以使用automapper Knockout插件knockoutjs.com/documentation/plugins-mapping.html
-
谢谢本杰明,您的评论是关于改进
ko.observable(JSON.parse('!{recipeJSON}'));行吗?如果是这样,我不确定那是我最初追求的改进,但我会调查一下。您能否检查我的说明,看看我的假设是否正确?
标签: javascript node.js knockout.js requirejs