asp.net-mvc - Knockout.js 中的数据绑定
问题描述
我的 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()
我的应用程序支持多种语言,我在剃刀语法中转换
<h3 class="title">@OtherLang("Some text to convert", language)</h3>
此方法 OtherLang("text", language) 可以直接在文本上使用,如上所示或在 html 属性中,如下所示
<input type="text" value="@OtherLang(id(), language)" />
但是在淘汰方式 data-bind="value: id() ,这个c#方法不能在这里使用。
有人可以建议一种替代方法来调整 knockout.js 实现中的 Otherlang() 以使其在这里工作吗?
解决方案
既然您通过 javascript 使用 razor c#,您不是只是在这里混淆了一些语法吗?
这个想法是当服务器解析你的剃刀时你有一个字符串。因此,当您到达客户端的浏览器时,您正在为通过 data-bind 'value' 属性设置的值对象分配一个字符串。
<input type="text" data-bind="value: '@OtherLang(id(), language)'" />
推荐阅读
- typescript - 行为主题从回调更新的订阅结果
- amazon-web-services - 如何使用 Javascript 开发工具包将查询字符串参数传递给 AWS API Gateway 客户端?
- amazon-web-services - 如何在 lambda 中读取 AWS cognito 自定义属性和登录用户
- uwp-xaml - 如何在较低版本中管理 TextBlock 的 HorizontalTextAlignment?
- powershell - 如何将 PowerShell 哈希对象打印为哈希对象?
- laravel - Laravel belongsToMany attach() 方法在同一关系上使用 contains 方法后不起作用
- google-apps-script - 如何将值复制到选定单元格之前的 6 列?
- c++ - 编译错误:2 个重载对“this”指针没有合法转换。使用结构
- xaml - 如何在 DataGridTemplate 列中获得默认的 ComboBox 行为?
- apache - 多服务器目录配置的通用 .htaccess 重写规则