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 中的数据绑定的主要内容,如果未能解决你的问题,请参考以下文章
用于在 url 中查找部分字符串的 Knockout.js 数据绑定