【问题标题】:Knockout Html binding敲除 Html 绑定
【发布时间】:2014-06-27 03:15:31
【问题描述】:

我会绑定我的模型

 带有剃须刀引擎文件的视图模型。

** 我将标签分开只是为了展示 html 代码是如何以原始格式保存的。

当上述数据显示在视图上时,数据显示为“”。

我在cshtml页面使用的敲除标签是“”。

我想知道为什么上面的数据反映为字符串消息而不是html控件?

【问题讨论】:

  • 您能否创建一个示例 jsFiddle 来显示您的问题?

标签: html model-view-controller knockout.js binding


【解决方案1】:

如果您提供的字符串是正确的,我会说这是因为<input 之间的whitespace。让它<input。其次,根据您在要呈现的 html 中引用的方式,您需要转义一些 " 或将它们更改为 '

视图模型

vm={
html1: "C<input type=\"radio\" name=\"\" />",
html2: "D<input type='radio' name='' />",
html3: "Your example has whitespace causing it to be invalid HTML: < input type='radio' name=''/>"}
ko.applyBindings(vm)     

HTML

<body>
  With escaped double quotes <label data-bind="html: html1"></label>
  <br/>
  With single qoutes <label data-bind="html: html2"></label>
  <br/>
  <label data-bind="html: html3"></label>
</body>

有关上述工作示例,请参阅this fiddle

【讨论】:

  • 上面的html字符串来自页面加载时的数据库。我已经在 javascript 的末尾调用了一次 ko.binding。因此,如果我尝试绑定 html 字符串,是否需要再次绑定我的视图模型?
  • 取决于您如何设置保存html 字符串的容器的值。假设您使用正确的值更改语法:XYZ('some new html string'),对 viewmodel 可观察值的任何更改都会在 ko.applyBindings 之后反映在 UI 中。如果您正在绑定还包含数据绑定的 html,那么您需要针对这些单独执行 ko.applyBindings。
猜你喜欢
  • 1970-01-01
  • 2020-10-08
  • 1970-01-01
  • 2013-06-11
  • 1970-01-01
  • 2015-05-26
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多