【发布时间】:2012-08-20 22:43:57
【问题描述】:
我正在尝试创建一个HtmlHelper 扩展,它将一些 HTML 输出到视图。在这个 HTML 中,我正在连接一些 KnockoutJS 绑定。我是 KO 的新手,所以我仍然在努力完成一些事情。无论如何,我要做的是在客户端代码上生成绑定到可观察对象的输入字段(在服务器端代码中),然后通过隐藏字段的值设置可观察对象的初始值。不幸的是,这对我不起作用。所以我想知道是否有任何方法可以完成这项工作(即使我必须完全不同)。
这就是我基本上在做的事情:
在我的客户端视图模型中,我有以下内容:
self.dataSource = ko.observable();
self.pageSize = ko.observable();
我的扩展方法输出如下:
<input type="hidden" value="/Employee/Get" data-bind="value: dataSource" />
<input type="hidden" value="30" data-bind="value: pageSize" />
但是当页面呈现时,当我检查元素时,我注意到输入字段的value 被设置为空字符串,我认为这是因为声明了可观察对象的方式。但是有没有办法覆盖这种行为?
【问题讨论】:
-
您可以用来保持代码更简洁的另一种方法是使用自定义绑定,该绑定通过使用元素的当前值对其进行初始化来包装
value绑定。如果不存在,您甚至可以让它在您的视图模型上创建可观察对象。这是一个示例:jsfiddle.net/rniemeyer/BnDh6 -
嗯...现在我得到了在发出的 HTML 标记中显示的值,但 observables 的值仍未定义。
-
你能在 jsFiddle 里放点东西吗?
-
没关系,我搞定了。这是一个愚蠢的错误(像往常一样!)。您能否发布您的答案,以便我接受它作为正确的答案?感谢您的帮助,非常感谢:)
标签: javascript data-binding knockout.js observable