javascript - Knockout int 值 - 显示字符串

标签 javascript jquery asp.net asp.net-mvc knockout.js

是否可以根据 int 值显示字符串值?

例如,我有一个数组可观察列表,其中一个元素是 int。我不想显示int,而是依赖于int值,字符串。

例如,如果我有 1 我想显示“一个”,2 ->“其他”并继续。

我现在有:

<td data-bind="text: test_value"></td>

它在 foreach 循环中。

最佳答案

有多种方法可以实现这一目标。

最简单的解决方案是声明一个查找对象并在绑定(bind)绑定(bind)中进行查找:

<td data-bind="text: $root.strings[test_value]"></td>

View 模型在哪里 strings像这样的查找对象:
strings: {
    1: 'test',
    2: 'other',
    3: 'thrid'
}

演示 http://jsfiddle.net/zuq0whhw/ .

笔记:
  • 因为你在一个 foreach 中,所以你需要使用 $parent$root (取决于您的设置)访问您的查找对象,该对象可能声明在“更高级别”
  • 如果您的 test_value是一个 KO observable 你需要写 $root.strings[test_value()]因为 KO observables 是函数,你需要在没有任何参数的情况下调用它们来获得低估的值。

  • 更复杂和更好维护的解决方案是使用 computed properties在 View 模型中执行查找逻辑或创建 custom binding它封装了这个逻辑,然后你也可以将它用于任何其他属性。

    关于javascript - Knockout int 值 - 显示字符串,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29765760/

    相关文章:

    javascript - 当我将它设置为两个不同的功能时,window.onload 只运行一个功能

    javascript - 如何调用jstat的studentt方法获得结果?

    javascript - 调整窗口大小导致未对准

    javascript - 在 ASP.NET MVC 中加载 JavaScript 的最佳方式是什么?

    javascript - 文字被短暂隐藏在视频后面

    javascript - 无法更改 span 标签内的内容

    jquery函数不起作用

    jquery - 在 JQuery 中使用 Load() 获取 XML 属性

    javascript - 如何在 asp.net 的 javascript 文件中使用本地化消息

    asp.net - ListView 内有边框的表格