【问题标题】:Data binding in Knockout.jsKnockout.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() 以使其在这里工作吗?

【问题讨论】:

    标签: asp.net-mvc razor knockout.js


    【解决方案1】:

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

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

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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2023-03-15
      • 2015-04-16
      • 2012-06-22
      • 2013-01-14
      • 2012-06-16
      • 2012-03-21
      • 2012-05-22
      相关资源
      最近更新 更多