【发布时间】:2014-12-04 08:51:46
【问题描述】:
我是 KnockOutJs 的新手,我正在开发一个使用 KnockOutJs 来维护客户端模型状态和 Asp.Net Webforms 的页面。 当我从服务器请求页面时,控件(如文本框、跨度)已经由后面的 Asp.Net 代码填充。
<asp:TextBox runat="server" class="form-control" text="John" data-bind="value: firstName" id="txtFirstName"></asp:TextBox>
当我定义我的视图模型时,现在在我的 javascript 中
var viewModel = { userId = ko.observable() }
ko.applyBindings(viewModel);
applyBindings 语句导致文本框的值被重置,因为我没有在 ko.observable() 中定义我的初始值。
applyBindings 是否存在重载,它不会将模型应用到 DOM 元素,而只是将模型与 DOM 绑定或执行相反的操作(即从 DOM 读取值到模型中)
【问题讨论】:
-
我现在做不到,但我怀疑自定义绑定可能是这里的方法。因此,与其使用内置的
value绑定,不如编写自己的绑定,做同样的事情,但能够从 DOM 中获取它的初始值。如果到那时没有其他人的话,我明天会试一试。 -
或者,无论您的代码在哪里设置后面代码中文本框的值,您可以更改它以便将值注入到您的 JavaScript 视图模型中吗?
-
@JamesThorpe,感谢您的指导,我会在周末尝试这个。
标签: knockout.js webforms