Knockout.js 中的数据绑定

Posted

技术标签:

【中文标题】Knockout.js 中的数据绑定【英文标题】:Data binding in Knockout.js 【发布时间】:2021-08-03 11:59:03 【问题描述】:

我的 MVC 应用程序中的控件很少,与 knockout.js 示例绑定

<div class="checkbox">
<input class="styled" type="checkbox" data-bind="value: id(), checked: userProfileViewModel.preferredService, click: userProfileViewModel.toggleAssociation,attr:id:Name(),name:Name()">
<label data-bind="text: Name(),attr:  for:  Name()"></label>
</div>

这里的绑定是通过以下方式完成的

data-bind="value: id()

我的应用程序支持多种语言,我可以在 razor 语法中进行转换

<h3 class="title">@OtherLang("Some text to convert", language)</h3>

OtherLang("text", language) 这个方法可以直接用在上面的文本上,也可以在下面的html属性中使用

<input type="text" value="@OtherLang(id(), language)" />

但是在knockout方式 data-bind="value: id() ,这里不能使用这个c#方法。

有人可以建议一种替代方法来调整 knockout.js 实现中的 Otherlang() 以使其在这里工作吗?

【问题讨论】:

【参考方案1】:

你不是只是在这里混淆了一些语法,因为你是通过 javascript 使用 razor c# 的吗?

这个想法是当服务器解析你的剃刀时你有一个字符串。因此,当您到达客户端的浏览器时,您正在为通过 data-bind 'value' 属性设置的值对象分配一个字符串。

<input type="text" data-bind="value: '@OtherLang(id(), language)'" />

【讨论】:

以上是关于Knockout.js 中的数据绑定的主要内容,如果未能解决你的问题,请参考以下文章

knockout.js - 数据绑定文本默认值

用于在 url 中查找部分字符串的 Knockout.js 数据绑定

如何在动态添加的内容中绑定 knockout.js 中的事件?

Knockout JS 如何将数据绑定到静态表单元素

单选按钮的 knockout.js 布尔数据绑定问题

访问 Javascript Html 模板并使用 Knockout.js 绑定数据