我正在尝试将 KnockoutJS 逐渐添加到我现有的应用程序中。我的第一个尝试是采用一些现有的小型表单,并将它们的值推送到模糊的服务器,并通过绑定更新一些元素。
我遇到的问题是,当表单首次显示时,它没有通过剔除填充。我正在使用表单中已有的数据呈现页面。所以我像这样设置我的淘汰赛:
function DomainViewModel() {
this.name = "";
this.description = "";
}
ko.applyBindings(new DomainViewModel());
我的表格是这样的:
<input data-bind="value: name" value="${domainInstance.name.encodeAsHTML()}"/>
<textarea data-bind="value: description" >${domainInstance.description.encodeAsHTML()}</textarea>
所以发生的事情是显示我的表单,然后敲除将 ViewModel 中的值应用于表单,这会清除服务器放置在那里的值。我理解为什么会发生这种情况,并且这不是错误。但是,我想知道这里是否还有其他选择。
我知道我可以执行以下操作:
function DomainViewModel() {
this.name = "${domainInstance.name}";
this.description = "${domainInstance.name}";
}
但这需要我将一些 javascript 直接放入 GSP(我正在使用 Grails)而不是外部脚本文件中。