javascript - Knockout int 值 - 显示字符串

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

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

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

例如,如果我有 1,我想显示“one”,2 -> “other”,然后继续。

现在我有:

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

它在foreach循环中。

最佳答案

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

最简单的解决方案是只声明一个查找对象并在您的绑定(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 是函数并且你需要调用它们而不需要任何获得低估值(value)的论据。

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

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

相关文章:

c# - 编码/解码文本框

javascript - 如何在 AngularJS 中设置选项值

java - 尝试解析被javascript隐藏的html

javascript - 使用 ddSlick 并按值而不是索引选择列表中的项目

javascript - 如何使用 jQuery 将负数 padding-top 添加到 html 元素

asp.net - 什么是动词 ="*"?

c# - 奇怪的是 SQL Server Management Studio 中的数据

javascript - 如何格式化 JavaScript 长字符串日期

javascript - Delphi,开发浏览器插件

javascript - jQuery 从数组中多个元素的类属性中获取值,无需循环